首页 > 解决方案 > 使用不同数量的键更新不平衡字典中的键

问题描述

我想根据相同的列表值将 d1 中的密钥交换为 d2 中的密钥。例如,我有以下原始词典:

d1={'work': ['fulltime','partime','intership','volunteer'], 
    'thing': ['science', 'grammar', 'universe', 'unicorn']}

d2={'working': ['fulltime','partime','intership','volunteer','working']}

我知道按如下方式更新键字典会将更新后的键添加到字典的末尾,这在本例中不打算这样做:

d1['working']=d1.pop('work')

在这种情况下如何更新密钥?

{'working': ['fulltime', 'partime', 'intership', 'volunteer'],
 'thing': ['science', 'grammar', 'universe', 'unicorn']}

谢谢

标签: python-3.xdictionary

解决方案


一种使用dict理解的方法。请注意,这假设 key fromd1是 key from 的唯一子字符串d2

{k2 if k1 in k2 else k1: v for k1, v in d1.items() for k2 in d2}

输出:

{'working': ['fulltime', 'partime', 'intership', 'volunteer'],
 'thing': ['science', 'grammar', 'universe', 'unicorn']}

推荐阅读