python - 用另一个字典中的值替换字典键

标签 python dictionary

我有一个字典列表,其中包含我想在每个字典的键下替换的信息。

所以,我正在考虑遍历每个字典并替换值。

我有另一个字典,其中包含我想替换为键的值和应该作为值的最终值。

它是这样的:

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/

相关文章:

python - 如何在树形 View 中显示父目录?

Python:通过比较文件输入创建具有多个值的新字典

c# - 通过使用 if 访问字典来缩短代码

python - 同时分配 numpy/torch 轴的多个不同切片

python - Django管理错误 'WSGIRequest'对象没有属性“用户”

python - 使用 Python 将字典打印到 CSV 文件

python - 查找第二次出现的索引最小的第一个重复数字

java - 何时在 Java 中使用 Map 而不是 List?

python - 无法使用 matplotlib 绘制实时图形

python - 您可以使用 Pyinstaller 访问多张照片吗?