【发布时间】:2015-02-06 06:52:03
【问题描述】:
我有一本字典如下:
lst1 = {1: {"a": "x","b": "y"}, 2: {"b": "y", "c": "z"}}
我想用它制作一个扁平的字典。应删除任何重复的键,以便在扁平化的字典中仅存在嵌套字典之一的唯一键。上面的dict应该变成:
{"a": "x", "c": "z"}
简单的代码是:
for key, value in lst1.iteritems():
for key1, value1 in value.iteritems():
if key1 <> "b":
lst2[key1]=value1
我尝试了一些以前的答案here、here 和here,但无法正常工作。
以下代码返回错误:值未定义
lst2 = {key1: value1 for key1, value1 in value for key, value in lst1.items()}
这个:
lst2 = dict((key1, value1) for key1, value1 in (value for key, value in lst1.items()))
返回:
{'a': 'b', 'c': 'b'}
如前所述,如何正确展平结构?
【问题讨论】:
标签: python dictionary dictionary-comprehension