如何实现不同长度列表的逐元素相加?
假设缺少元素为“0”。
注意:len(a) 总是小于或等于 len(b)
例子:
a=[1,2,3]
b=[1,2,3,4,5]
期望的结果:
result=[2,4,6,4,5]
我几乎可以,但不能完全做到这一点:
result=[sum(n) for n in zip(a,b)]
是否可以在压缩之前自动将“0”个元素附加到(列表 a),使其与(列表 b)的长度相同?如果这是一个很好的 pythonic 解决方案,应该怎么做?
最佳答案
有一个替代的 zip
不会在最短处停止:itertools.zip_longest()
.您可以为较短的列表指定一个填充值:
from itertools import zip_longest
result = [sum(n) for n in zip_longest(a, b, fillvalue=0)]
关于python - 按元素添加两个不同长度的列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43215273/