我有一个字典列表,其中包含我想在每个字典的键下替换的信息。
所以,我正在考虑遍历每个字典并替换值。
我有另一个字典,其中包含我想替换为键的值和应该作为值的最终值。
它是这样的:
listOfDicts = [{'value_1' : 'A', 'value-2' : 'B', 'valu&_3' : 'C'}, {'value-1' : 'D', 'value_2' : 'E', 'value-3' : 'F'}, {'value_1' : 'G', 'value_2' : 'H', 'value_3' : 'I'}]
然后我有另一本字典用作修复此信息的基础:
fixer = {'value-2' : 'value_2', 'value&_3' : 'value_3', 'value-3' : 'value_3', ...}
我该如何进行替换?
- 编辑:
期望的输出应该是这样的:
listOfDicts = [{
'value_1' : 'A',
'value_2' : 'B',
'value_3' : 'C'},
{'value_1' : 'D',
'value_2' : 'E',
'value_3' : 'F'},
...}
最佳答案
我们可以用一个函数修复每一个字典:
fixer = {'value-2' : 'value_2', 'value&_3' : 'value_3', 'value-3' : 'value_3'}
def fix_dictionary(dict_):
return { fixer.get(k, k): v for k, v in dict_.items() }
这将为给定的 dict_
构造一个新字典,其中 fixer
中的键将被“固定”(替换为 中的相应值fixer
字典)。
然后我们可以生成一个新的固定字典列表:
[fix_dictionary(dict_) for dict_ in listOfDicts]
或者我们可以删除该函数,并使用一个一个 衬里:
[{ fixer.get(k, k): v for k, v in dict_.items() } for dict_ in listOfDicts]
关于python - 用另一个字典中的值替换字典键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50847329/