【发布时间】:2021-11-11 07:11:21
【问题描述】:
我对 python 中的嵌套字典有疑问。
我有两个字典,dict1 和 dict2。 dict2 包含一些定义 (nested_dict_a/_b/_c/_d),这些定义在 dict1 的最后一级重复使用(这就是为什么我将它们放在单独的字典中)。
dict1 = {
'nested_dict_1': {
'x': ['nested_dict_a', 'nested_dict_b'],
'y': ['nested_dict_a', 'nested_dict_c'],
'z': ['nested_dict_b', 'nested_dict_d']
}
}
dict2 = {
'nested_dict_1': {
'nested_dict_a': {
1: {
'abc': 'bcd',
'cde': 'def'
},
0: {
'efg': 'fgh',
'ghi': 'hij'
},
},
'nested_dict_b': {
1: {
'ijk': 'jkl',
'klm': 'lmn'
},
0: {
'mno': 'nop',
'opq': 'pqr'
},
},
'nested_dict_c': {
1: {
'qrs': 'rst',
'stu': 'tuv'
},
0: {
'uvw': 'vwx',
'wxy': 'xyz'
},
},
'nested_dict_d': {
1: {
'abcd': 'bcde',
'cdef': 'defg'
},
0: {
'efgh': 'fghi',
'ghij': 'hij'
},
}
}
}
我想将两个嵌套字典的信息合并到一个字典中,dict3。 dict3 与 dict1 类似,只是替换列表中的值(即 'x'、'y', 'z') 以及来自 dict2 的相应字典(即 nested_dict_a/_b/_c/_d)。
dict3 中的'x' 将如下所示:
'x': {
'nested_dict_a': {
1: {
'abc': 'bcd',
'cde': 'def'
},
0: {
'efg': 'fgh',
'ghi': 'hij'
},
},
'nested_dict_b': {
1: {
'ijk': 'jkl',
'klm': 'lmn'
},
0: {
'mno': 'nop',
'opq': 'pqr'
},
}
}
“y”和“z”的过程类似。
我相信我已经设置了正确的 for 循环:
for a in dict1:
for b in dict1[a]:
for c in dict1[a][b]:
for d in dict2[a][c]:
但是,我不知道如何从四个循环中的局部变量中创建嵌套字典。
这样的事情不起作用:
{a: {dict1[a]: {dict1[a][b]: {dict2[a][c]: d}}}}
【问题讨论】:
标签: python dictionary for-loop