我有这样一个清单:如何遍历字典列表?
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