我有一個關于python中嵌套字典的問題。
我有兩個字典,dict1和dict2。dict2包含一些定義(nested_dict_a/_b/_c/_d),這些定義在dict1的最后一層中被重復使用(這就是為什么我把它們放在不同的字典里)。
dict1 = {
'nested_dict_1': {
'x'/span>: ['nested_dict_a'/span>, 'nested_dict_b'/span>]。
'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,只是用dict2的相應字典(即nested_dict_a/_b/_c/_d)替換串列中的值(即'x'、'y'、'z'中)。
'x'在dict3中就會變成這樣:
'x'/span>: {
'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回圈。
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}}}}
uj5u.com熱心網友回復:
使用for回圈遍歷dict1,并使用dict2的參考來創建一個新的dict。
dict3 = {}。
# k1: nested_dict_1, v1: Object
for k1, v1 in dict1.items()。
dict3[k1] = {}。
for k11, v11 in v1.items():
# k11: x, v11: array。
dict3[k1][k11] = {}。
for v111 in v11:
# v111: nested_dict_a
# 使用k1和v111訪問dict2的物件并在新的dict中使用它。
dict3[k1][k11][v111] = dict2[k1][v111] 。
print(dict3)
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/311393.html
標籤:
