如果我有2个字典:
d1={1:[2,3,str],2:[4,5,str2]}
d2={3:[6,7],2:[8,9]}
我想创建一个新词典,它只包含两个词典中出现的键
new_d={2:[4,5,str2,8,9]}
答案 0 :(得分:1)
{k: d1[k] + d2[k] for k in set(d1.keys()).intersection(d2.keys())}
此构造{... for ... in ... }
称为字典理解。
在这两种情况下都不需要.keys()
,但它们会更清楚地发生了什么。最短的版本是:
{k: d1[k] + d2[k] for k in set(d1) & set(d2)}
&
运算符与集合大致相当于.intersection
,而set(d1)
可以正常工作,因为迭代字典会迭代其键。