2016-03-08 148 views
0

我有這樣一個清單:如何遍歷字典列表?

mylist = [{2: 1451989654}, {3: 1435222955}, {4: 1346726067}, {53: 1451887667}, {723: 1445763454}] 

我想這樣做

for key, val in mylist: 
    print key 
    print val 

我如何最好地實現這一目標?

回答

5

mylist是一個列表,所以你會在列表中第一個需要循環:

for dct in mylist: 
    for key, val in dct.items(): 
     print key 
     print val 

注意:您需要dict.items()(或.iteritems()),以獲得這兩個鍵和值

+3

我不知道'lst'是否是一個很好的字典名字... – TigerhawkT3

+1

它應該是''print val''而不是''print value'',否則會引發一個錯誤。 '.items()''不適用於python2或? – MSeifert

+0

'.items()'和'.iteritems()'有什麼區別? – Jand

1

,因爲你不在你的字典中有重複的鍵爲什麼你把它保存在列表中?

你可以只保存在一個字典中的一切(或更高版本轉換),這樣來訪問數據,它更容易(包括印刷):

mylist = [{2: 1451989654}, {3: 1435222955}, {4: 1346726067}, {53: 1451887667}, {723: 1445763454}] 
mydict = {k:d[k] for d in mylist for k in d} # Convert the list to one dictionary 
for k in mydict: 
    print k, mydict[k] 

這個打印:

2 1451989654 
3 1435222955 
4 1346726067 
53 1451887667 
723 1445763454 

通知但是,如果你希望你的數據命令你可能需要默認爲OrderedDict,並更換轉換:

mydict = OrderedDict([(k, d[k]) for d in mylist for k in d]) 
+0

這使得sence。但我笨拙的詞典列表是一個相當長的特技鏈的結果,其上我沒什麼影響力:) – Jand