Python:合并2个字典,key为空则加0
Python: Merge 2 dictionaries and add 0 if key is empty
我有 2 个指令如下:
d1 = {a:2, b:4}
d2 = {a:13, b:3, c:5}
如何将这两个合并,一个键为空时加0?
结果应该是
= {a:[2,13], b:[4,3], c:[0,5]}
我试过用这个
d1 = {'a':2, 'b':4}
d2 = {'a':13, 'b':3, 'c':5}
dd = defaultdict(list)
for d in (d1, d2):
for key, value in d.items():
dd[key].append(value)
但是我不会加0,我是编程新手
您可以获得键列表,然后使用 dict.get
和默认值 0
生成所需的字典
d1 = {'a':2, 'b':4}
d2 = {'a':13, 'b':3, 'c':5}
keys = set((*d1.keys(), *d2.keys()))
new_dict = {k: [d.get(k, 0) for d in [d1, d2]] for k in keys}
print(new_dict) #{'a': [2, 13], 'b': [4, 3], 'c': [0, 5]}
使用下面的代码。
d1 = {'a':2, 'b':4}
d2 = {'a':13, 'b':3, 'c':5}
keys = set((*d1.keys(), *d2.keys()))
result={}
for k in keys:
result[k]=list((d1.get(k, 0), d2.get(k,0)))
print(result)#{'a': [2, 13], 'b': [4, 3], 'c': [0, 5]}
我有 2 个指令如下:
d1 = {a:2, b:4}
d2 = {a:13, b:3, c:5}
如何将这两个合并,一个键为空时加0?
结果应该是
= {a:[2,13], b:[4,3], c:[0,5]}
我试过用这个
d1 = {'a':2, 'b':4}
d2 = {'a':13, 'b':3, 'c':5}
dd = defaultdict(list)
for d in (d1, d2):
for key, value in d.items():
dd[key].append(value)
但是我不会加0,我是编程新手
您可以获得键列表,然后使用 dict.get
和默认值 0
d1 = {'a':2, 'b':4}
d2 = {'a':13, 'b':3, 'c':5}
keys = set((*d1.keys(), *d2.keys()))
new_dict = {k: [d.get(k, 0) for d in [d1, d2]] for k in keys}
print(new_dict) #{'a': [2, 13], 'b': [4, 3], 'c': [0, 5]}
使用下面的代码。
d1 = {'a':2, 'b':4}
d2 = {'a':13, 'b':3, 'c':5}
keys = set((*d1.keys(), *d2.keys()))
result={}
for k in keys:
result[k]=list((d1.get(k, 0), d2.get(k,0)))
print(result)#{'a': [2, 13], 'b': [4, 3], 'c': [0, 5]}