python 词库 匹配,将Python字典的值替换为与其他字典键匹配的另一个字典的值

At the moment I have two dictionaries

dictionary1 = {'key1': 'value1', 'key2': 'value2', 'key3': 'value3'}

dictionary2 = {'value1': 'AAA', 'value3': 'CCC'}

I want to replace the values of dictionary1 with the values from dictionary2 which with the example above would produce the following output

{'key1': 'AAA', 'key2': 'value2', 'key3': 'CCC'}

From other examples I have read I think that I should begin my code as follows:

for key, value in dictionary1.iteritems():

if value ==

Now I am unsure as to the best method to cycle through the other dictionary to find if the value from dictionary1 matches a key from dictionary2.

解决方案

You can do this with dictionary comprehension, like this

>>> 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'}

Here, dict2.get(v, v) will try to get the value corresponding to the value v from dict2. If it is not found, the default value (second parameter), v itself will be returned.

Note 1: What you have in question, are called dictionaries, not lists.

Note 2: If you are using Python 2.7, then you might want to use dict1.iteritems or dict1.viewitems instead of dict1.items. The reason is explained, elaborately, with examples, in this answer.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值