2013-10-29 95 views
2
#some dictionary data{} 
data = {1:[3,1,4,2,6]} 

如何打印关键的数据,即如何让字典的关键在python

print(key_of(data)) #print in some ways. 

输出:

我得到了什么,直到目前使用data.keys()函数,但每当我使用该函数输出将如下所示:

dict_keys([1])

那么,什么是与该功能的问题。任何人都可以告诉我答案。?

回答

2

简单地做:

print(list(data)) 

打印所有的钥匙。如果您想打印一个特定的密钥,那么你就必须寻找它:

print(next(key for key, value in data.items() if value == something)) 

注意有没有保证键的顺序。

>>> data = {'a': 1, 'aa': 2, 'b': 3, 'cd': 4} 
>>> list(data) 
['cd', 'a', 'b', 'aa'] 
>>> data['f'] = 1 
>>> list(data) 
['cd', 'a', 'b', 'aa', 'f'] 
>>> del data['a'] 
>>> list(data) 
['cd', 'b', 'aa', 'f'] 
>>> data[1] = 1 
>>> list(data) 
['cd', 1, 'b', 'aa', 'f'] 
>>> for c in ('cde', 'fgh', 'ijk', 'rmn'): 
...  data[c] = 1 
... 
>>> list(data) 
[1, 'aa', 'cde', 'cd', 'rmn', 'b', 'ijk', 'fgh', 'f'] 

注意键怎么办遵循字母顺序,以及如何插入钥匙并不总是追加到密钥列表。还有一些插入后,一些键被交换。移除/插入按键可以以不可预知的方式改变顺序。

2

dict.keys没有问题,它在Python3中返回类似于对象的视图。您可以在字典上使用list()来获取密钥列表。

>>> data = {1:[3,1,4,2,6]} 
>>> keys = list(data) 
>>> keys 
[1] 
>>> keys[0] 
1 

注:如果字典包含不止一个键,然后顺序可以是任意的,keys[0]可以返回任何键。

>>> dic = {'a12': 1, 'sd':'sdfd', 'sdfsd': 'sdfsd'} 
>>> list(dic)    #Arbitrarily ordered 
['sdfsd', 'sd', 'a12']