Skip to main content
 首页 » 编程设计

python之按元素添加两个不同长度的列表

2025年05月04日24xing901022

如何实现不同长度列表的逐元素相加?
假设缺少元素为“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)]