如果存在匹配,Python会将dict中的值附加到具有两个值的现有dict

时间:2017-02-19 15:59:38

标签: python dictionary

sizeof(void *)

输出:

a = {('a', 'b', 'c'): [4, 5], ('d', 'e', 'f'): [0, 1]}
b = {('a', 'b', 'c'): 4, ('z', 'z', 'z'): 1, ('d', 'e', 'f'): 1}
c = {key:[val,b.get(key,0)] for key,val in a.items()}
print(c)

如何在不创建看起来像这样的新值数组的情况下附加值 - {('a', 'b', 'c'): [[4, 5], 4], ('d', 'e', 'f'): [[0, 1], 1]}

我想得到的是:

[[0, 1], 1]

1 个答案:

答案 0 :(得分:1)

  

如果存在,则将dict中的值附加到具有两个值的现有dict   匹配

在您的情况下,a&#34;来源&#34; dict,b&#34;接收者&#34; < / em> dict。
使用list concatenation 的简单解决方案:

a = {('a', 'b', 'c'): [4, 5], ('d', 'e', 'f'): [0, 1]}
b = {('a', 'b', 'c'): 4, ('z', 'z', 'z'): 1, ('d', 'e', 'f'): 1}
c = {k:v + [b[k]] for k,v in a.items() if k in b}

print(c)

输出:

{('d', 'e', 'f'): [0, 1, 1], ('a', 'b', 'c'): [4, 5, 4]}