我有两个嵌套的字典,它们描述了一组论文的引用行为。例如,在以下玩具示例中,"001"
引用了"005"
,而"010"
和"012"
引用了{1>}。
dict1 = {"001": {"005", "006"}, "002": {"003", "007"}}
dict2 = {"005": {"010", "012"}, "006": None, "003": {"014", "018", "020"}, "007": None}
现在我想将两个字典合并到一个嵌套列表中,看起来像
nestedDict = {"001": {"005": {"010", "012"}, "006": None}...}
我知道可以通过执行类似的操作
轻松完成nestedDict = {key: {val: dict() for val in valSet} for key, valSet in dict1.items()}
for key, valSet in dict1.items():
for val in valSet:
nestedDict[key][val] = dict2[val]
我想知道是否还有更多“直接”方式可以用更简洁的代码(最好是单行代码)代替这四行代码?
答案 0 :(得分:1)
您可以使用以下内容:
nested_dict = {k1: {v2: dict2[v2] for v2 in v1} for k1, v1 in dict1.items()}
这将导致:
{'001': {'006': None, '005': set(['010', '012'])},
'002': {'003': set(['018', '014', '020']), '007': None}}