有一个嵌套字典的列表:
k = [{'width_min': 0, 'width_max': 300, 'height_min': 0, 'height_max': 65535},
{'width_min': 301, 'width_max': 600, 'height_min': 0, 'height_max': 65535},
{'width_min': 601, 'width_max': 65535, 'height_min': 0, 'height_max': 65535}]
并且有一个关键映射:
keymap = {
'width_min': 'minWidth',
'width_max': 'maxWidth',
'height_min': 'minHeight',
'height_max': 'maxHeight',
}
尝试创建一个新的列表,其中包含与原列表相同的字典,但具有不同的键名:
new_data = []
for i, x in enumerate(k):
for k, v in x.items():
new_data.insert(i, {keymap[k]: v})
print('---> new_data:', new_data)
输出:
new_data: [{'maxHeight': 65535}, {'maxHeight': 65535}, {'maxHeight': 65535},
{'minHeight': 0}, {'maxWidth': 65535}, {'minWidth': 601}, {'minHeight': 0},
{'maxWidth': 600}, {'minWidth': 301}, {'minHeight': 0}, {'maxWidth': 300},
{'minWidth': 0}]
如何通过索引更新嵌套字典而不是创建新字典?期望的数组:
k = [{'minWidth': 0, 'maxWidth': 300, 'minHeight': 0, 'maxHeight': 65535},
{'minWidth': 301, 'maxWidth': 600, 'minHeight': 0, 'maxHeight': 65535},
{'minWidth': 601, 'maxWidth': 65535, 'minHeight': 0, 'maxHeight': 65535}]
[{keymap.get(a, a)..
。 - Ma0keymap.get
,因为它可能会隐藏输入数据中的潜在错误。快速失败! - xtofl