我正在尝试更新 key ,同时在嵌套字典中保留其值。 虽然我找到了一种方法来做到这一点,但我必须创建新的字典才能满足它。因此,想知道是否有人可以让我更好地了解我所采取的方法?
init_dict = {
'pageA' : {
0 : {
'menuA' : [
'a01',
'a02'
]
}
},
'pageB' : {
1 : {
'menuB' : [
'b10'
]
}
}
}
changed = {'pageB' : 0, 'pageA' : 1}
condense_dict = {}
for k, v in init_dict.items():
for i in v.keys():
condense_dict[k] = init_dict[k][i]
new_dict = {}
for i in condense_dict:
new_dict[i] = {}
new_dict[i][changed.get(i)] = condense_dict.get(i)
我的预期输出如下:
{
'pageA' : {
1 : {
'menuA' : [
'a01',
'a02'
]
}
},
'pageB' : {
0 : {
'menuB' : [
'b10'
]
}
}
}
最佳答案
您可以从子字典中弹出可能唯一的键,并将其分配给已更改
中每个条目的新键:
for k, v in changed.items():
init_dict[k][v] = init_dict[k].pop(next(iter(init_dict[k])))
init_dict
变为:
{'pageA': {1: {'menuA': ['a01', 'a02']}}, 'pageB': {0: {'menuB': ['b10']}}}
关于python - 更新键而不影响嵌套字典中键的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55011864/