一尘不染

如何在Python中将字典键作为列表返回?

python

在Python 2.7中,我可以将字典键,值或项作为列表获取:

>>> newdict = {1:0, 2:0, 3:0}
>>> newdict.keys()
[1, 2, 3]

现在,在Python> = 3.3中,我得到如下信息:

>>> newdict.keys()
dict_keys([1, 2, 3])

因此,我必须这样做以获得列表:

newlist = list()
for i in newdict.keys():
    newlist.append(i)

我想知道,是否有更好的方法在Python 3中返回列表?


阅读 700

收藏
2020-02-21

共1个答案

一尘不染

尝试list(newdict.keys())

这会将dict_keys对象转换为列表。

另一方面,你应该问自己是否重要。Python的编码方式是假设鸭子输入(如果看起来像鸭子,而像鸭子一样嘎嘎叫,那就是鸭子)。在dict_keys大多数情况下,该对象的作用类似于列表。例如:

for key in newdict.keys():
  print(key)

显然,插入运算符可能不起作用,但是对于字典关键字列表而言,这并没有多大意义。

2020-02-21