如何对不同长度的列表进行按元素相加?
假设缺失元素为“0”。
注意:len(a) 始终小于或等于 len(b)
例子:
a=[1,2,3]
b=[1,2,3,4,5]
Run Code Online (Sandbox Code Playgroud)
期望的结果:
result=[2,4,6,4,5]
Run Code Online (Sandbox Code Playgroud)
我几乎可以,但不能完全做到这一点:
result=[sum(n) for n in zip(a,b)]
Run Code Online (Sandbox Code Playgroud)
在进行压缩之前,是否可以自动将“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)]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3420 次 |
| 最近记录: |