2013-10-29 30 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']