问题描述
dict1 = {"a":[0,1,3,6],"b":[1,4,6,0],"c":[4,7,8,9]}
我想创建一个像这样的新数组:
array = [5,10,13,6]
新数组中的每个索引是字典中每个键中相同位置的总和。
解决方法
使用zip()
是匹配此类项目的常规方法。但是,zip()
将在您压缩的最短元素处停止,因此您将无法获得所需的所有值。为此,您可以将itertools.zip_longest()
与fillvalue
或0
结合使用:
from itertools import zip_longest
dict1 = {"a":[0,1,3,6],"b":[1,4,6,0],"c":[4,7,8,9]}
[sum(nums) for nums in zip_longest(*dict1.values(),fillvalue=0)]
# [5,10,13,6]