我想要合并两个这样的词典:
old={'a':'1a','b':'1b','c':'1c'}
new={'1a':'c','1b':'d','1c':'e'}
我想要这样的输出:
new_dict={'a':'c','b':'d','c':'e'}
注意:两个词典的长度不同。
如何在python中完成?
答案 0 :(得分:2)
您可以使用字典理解来获取新字典,您可以根据旧字典中的键从新字典中获取值。如果旧词典中的值不作为新词典中的键出现,请务必使用默认返回get
的{{1}}。
None
答案 1 :(得分:2)
用词汇理解:
@ViewChild(MvcPartialComponent) mvcPartialComponent: MvcPartialComponent;
<mvc-partial #mvc-partial></mvc-partial>
@ViewChild('mvc-partial') mvcPartialComponent: MvcPartialComponent;
*请注意,old = {'a': '1a','b': '1b','c': '1c'}
new = {'1a': 'c','1b': 'd','1c': 'e'}
res = {k: new[v] for k, v in old.items()} # if all values in `old` exist in `new` as keys.
res = {k: new.get(v, None) for k, v in old.items()} # if you cannot guarantee the above.
print(res) # {'b': 'd', 'a': 'c', 'c': 'e'}
方法的None
参数是默认值,因此可以省略。我会留在那里,但是提醒您,根据问题的具体情况,您可以指定任何您想要的内容(例如,.get()
(空白字符串)在您的情况下可能更好)
答案 2 :(得分:1)
您可以使用字典理解将第一个字典的值解释为第二个字典的键:
>>> {item: new[value] for item, value in old.items() if value in new}
{'a': 'c', 'b': 'd', 'c': 'e'}
如果您可以确保old
的所有值都在new
中,则可以省略if value in new
部分。