python-3.x - 使用不同数量的键更新不平衡字典中的键
问题描述
我想根据相同的列表值将 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']}
谢谢
解决方案
一种使用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']}
推荐阅读
- java - 无法在输出文件中逐行对文本文件输入进行排序
- postgresql - 锁定行时防止竞争条件
- javascript - 数据排序方法在javascript中不起作用
- android-studio - Android Studio main_activity.xml
- c++ - 构建 MongoDB 时出现 boost::date_time 错误:winapi 不是成员
- jvm - Firrtl 用大输入耗尽堆内存
- c - 为什么我的程序不能正确接受另一个程序的管道输出?
- php - 如何正确解析递归括号?
- c# - 安装程序语言资源未生成 C#
- mercurial - 'hg add' 会忽略 '.hgignore' 吗?