Python 使用dict构造函数将字典列表转换为字典
我有下面的代码片段,我想从字典列表中获取字典,但获取全局名称项未找到错误。想知道是否可以像下面这样列举Python 使用dict构造函数将字典列表转换为字典,python,dictionary,Python,Dictionary,我有下面的代码片段,我想从字典列表中获取字典,但获取全局名称项未找到错误。想知道是否可以像下面这样列举 l = [{1:{'item1':'value1'}},{2:{'item2':'value2'}}] dic = dict(((k,v)) for k,v in item.items() for item in l) print dic 你对陈述的排序是错误的。按照您在正常循环中对其进行排序的方式来考虑。因此,在item.items()中,对于l中的item首先出现,然后是对于k,v 现
l = [{1:{'item1':'value1'}},{2:{'item2':'value2'}}]
dic = dict(((k,v)) for k,v in item.items() for item in l)
print dic
你对陈述的排序是错误的。按照您在正常循环中对其进行排序的方式来考虑。因此,在item.items()中,
对于l中的item
首先出现,然后是对于k,v
现在,理解变成了
for item in l:
for k, v in item.items():
# Do Something
而不是
for k, v in item.items():
for item in l:
# Do Something
这是一个错误 列表理解for的解释就像正常的for循环一样(实际上有点违反直觉),因此
for k,v in item.items():
for item in mylist:
k,v
当然,你可以看到你的用于。。。在…
子句中向后。它们的顺序应与循环的正常顺序相同:
>>> l = [{1:{'item1':'value1'}},{2:{'item2':'value2'}}]
>>> dic = dict(((k,v)) for item in l for k,v in item.items())
>>> dic
{1: {'item1': 'value1'}, 2: {'item2': 'value2'}}
>>>
此外,我还想指出,在Python 2.6+中,您可以使用
>>> l = [{1:{'item1':'value1'}},{2:{'item2':'value2'}}]
>>> dic = {k:v for item in l for k,v in item.items()}
>>> dic
{1: {'item1': 'value1'}, 2: {'item2': 'value2'}}
>>>
首先是问题
它将帮助您分析您的问题…现在考虑正常循环
>>> dic = dict(((k,v)) for item in l for k,v in item.items())
>>> dic
{1: {'item1': 'value1'}, 2: {'item2': 'value2'}}
然后被当作
for item in l:
for k, v in item.items():
期望的输出是什么?感谢您的快速回复。我真的很感激。
for item in l:
for k, v in item.items():