我有這樣一個清單:如何遍歷字典列表?
mylist = [{2: 1451989654}, {3: 1435222955}, {4: 1346726067}, {53: 1451887667}, {723: 1445763454}]
我想這樣做
for key, val in mylist:
print key
print val
我如何最好地實現這一目標?
我有這樣一個清單:如何遍歷字典列表?
mylist = [{2: 1451989654}, {3: 1435222955}, {4: 1346726067}, {53: 1451887667}, {723: 1445763454}]
我想這樣做
for key, val in mylist:
print key
print val
我如何最好地實現這一目標?
mylist
是一個列表,所以你會在列表中第一個需要循環:
for dct in mylist:
for key, val in dct.items():
print key
print val
注意:您需要dict.items()
(或.iteritems()
),以獲得這兩個鍵和值
,因爲你不在你的字典中有重複的鍵爲什麼你把它保存在列表中?
你可以只保存在一個字典中的一切(或更高版本轉換),這樣來訪問數據,它更容易(包括印刷):
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])
這使得sence。但我笨拙的詞典列表是一個相當長的特技鏈的結果,其上我沒什麼影響力:) – Jand
我不知道'lst'是否是一個很好的字典名字... – TigerhawkT3
它應該是''print val''而不是''print value'',否則會引發一個錯誤。 '.items()''不適用於python2或? – MSeifert
'.items()'和'.iteritems()'有什麼區別? – Jand