使用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])

如何使用Python 3获得一个简单的键列表?


当前回答

我可以想到两种从字典中提取键值的方法。

方法一:- 使用.keys()方法获取键,然后将其转换为列表。

some_dict = {1: 'one', 2: 'two', 3: 'three'}
list_of_keys = list(some_dict.keys())
print(list_of_keys)
-->[1,2,3]

方法二:- 创建一个空列表,然后通过循环将键附加到列表中。 您也可以使用此循环获取值(仅使用.keys()提取键,使用.items()提取键和值)

list_of_keys = []
list_of_values = []
for key,val in some_dict.items():
    list_of_keys.append(key)
    list_of_values.append(val)

print(list_of_keys)
-->[1,2,3]

print(list_of_values)
-->['one','two','three']

其他回答

你可以像下面这样使用简单的方法

keys = newdict.keys()
print(keys)

在不使用keys方法的情况下转换为列表使其更具可读性:

list(newdict)

并且,当循环遍历字典时,不需要key ():

for key in newdict:
    print key

除非你在循环中修改它,这需要事先创建一个键列表:

for key in list(newdict):
    del newdict[key]

在Python 2上,使用keys()会有一个边际的性能提升。

我可以想到两种从字典中提取键值的方法。

方法一:- 使用.keys()方法获取键,然后将其转换为列表。

some_dict = {1: 'one', 2: 'two', 3: 'three'}
list_of_keys = list(some_dict.keys())
print(list_of_keys)
-->[1,2,3]

方法二:- 创建一个空列表,然后通过循环将键附加到列表中。 您也可以使用此循环获取值(仅使用.keys()提取键,使用.items()提取键和值)

list_of_keys = []
list_of_values = []
for key,val in some_dict.items():
    list_of_keys.append(key)
    list_of_values.append(val)

print(list_of_keys)
-->[1,2,3]

print(list_of_values)
-->['one','two','three']

你也可以使用列表推导式:

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

或者,短,

>>> [k  for  k in  newdict]
[1, 2, 3]

注意:在3.7以下的版本中不保证排序(排序仍然只是CPython 3.6的一个实现细节)。

是的,在python3中有一个更好和最简单的方法来做到这一点。X


使用inbuild list()函数

#Devil
newdict = {1:0, 2:0, 3:0}
key_list = list(newdict)
print(key_list) 
#[1, 2, 3]