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

标签 python

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

相关文章:

python - 如何跳过列表中没有持有元组的人?

python - 计算 spark 数据框中的单词数

python - 如何使用 aiohttp 处理 DNS 超时?

python - NetworkX:边和节点属性的子图同构

python - 如何正确拆分以下字符串? - Python

python - 代码中有语法错误,但不在代码行中

python - 使用元素树读取 xml 文件

python - 如何在 keras 神经网络中进行简单的数据记忆

python - 安装 scipy 和 scikit 时出现错误 1 ​​代码失败

Python TypeError : CommandEvent. GetString(): 参数太多