2016-03-08 168 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