[英]How to collect values with the same keys in a list from the two dictionaries
我正在寻找一种方法来使用一些常用键来插入两个字典。 如果两个词典中的键相同,则最终词典应包含两个词典中的值列表 。
D1 = {'A':1,'B':2,'C':3,'D':4}
D2 = {'A':10,'B':20,'X':3}
相交这两个应该给:
{'A':[1,10], 'B':[2,20]}
交叉部分工作正常
def intersect(D1,D2):
newD = {}
keys_D1 = set(D1.keys())
keys_D2 = set(D2.keys())
intersection = keys_D1 & keys_D2
for i in intersection:
newD[i] = D1.get(i)
//...(looking for a way to append the values from D1 & D2 not just D1)
return newD
newD = {'A':1,'B':2}
提前致谢!!
你可以通过列表理解来做到这一点;
>>> D1 = {'A':1,'B':2,'C':3,'D':4}
>>> D2 = {'A':10,'B':20,'X':3}
>>> {a:[b, c] for a, b in D1.items() for a1, c in D2.items() if a == a1}
{'B': [2, 20], 'A': [1, 10]}
>>>
尝试这个:
D1 = {'A':1,'B':2,'C':3,'D':4}
D2 = {'A':10,'B':20,'X':3}
newD = {}
for key in D1.keys():
try:
if(D2[key]):
newD[key] = [D1[key],D2[key]]
except KeyError:
continue
print newD
问候
你快到了。 后:
intersection = keys_D1 & keys_D2
你只需要字典理解:
{key: [D1[key], D2[key]] for key in intersection}
如果你想用你的循环来做:
for i in intersection:
newD[i] = [D1.get(i), D2.get(i)]
D1 = {'A':1,'B':2,'C':3,'D':4}
D2 = {'A':10,'B':20,'X':3}
a_dict = {}
for key in D1:
if key in D2:
a_dict[key] = [D1[key], D2[key]]
a_dict
这个怎么样:
D1 = {'A':1,'B':2,'C':3,'D':4}
D2 = {'A':10,'B':20,'X':3}
D3 = {i:[] for i in list(set(D1.keys()) & set(D2.keys()))}
for i in D3:
for j in [D1,D2]:
D3[i].append(j[i])
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.