目前我有两本字典
dictionary1 = {'key1': 'value1', 'key2': 'value2', 'key3': 'value3'}
dictionary2 = {'value1': 'AAA', 'value3': 'CCC'}
我想用 dictionary2 中的值替换 dictionary1 的值,上面的示例将产生以下输出
{'key1': 'AAA', 'key2': 'value2', 'key3': 'CCC'}
根据我读过的其他示例,我认为我应该按如下方式开始我的代码:
for key, value in dictionary1.iteritems():
if value ==
现在我不确定循环遍历另一个字典以查找字典 1 中的值是否与字典 2 中的键匹配的最佳方法。
请您参考如下方法:
你可以用字典理解来做到这一点,就像这样
>>> dictionary1 = {'key1': 'value1', 'key2': 'value2', 'key3': 'value3'}
>>> dictionary2 = {'value1': 'AAA', 'value3': 'CCC'}
>>> {k: dictionary2.get(v, v) for k, v in dictionary1.items()}
{'key3': 'CCC', 'key2': 'value2', 'key1': 'AAA'}
这里,dict2.get(v, v)会尝试从dict2中获取值v对应的值。如果没有找到,则返回默认值(第二个参数),v 本身。
注意 1:您有问题的是字典,而不是列表。
注意 2:如果您使用的是 Python 2.7,那么您可能希望使用 dict1.iteritems 或 dict1.viewitems 而不是 dict1.items。在 this answer 中通过示例详细解释了原因。 .
