繁体   English   中英

python中两个不相等列表的元素明智加法

[英]Element wise addition of two unequal lists in python

如果a=[1,2,3,4]b=[1,2,3] ,我想设置a = a+b ,只要b扩展,就会发生加法运算。 b结束后,元素不受影响。 在这种情况下,结果应为a=[2,4,6,4]

您可以通过使用itertools.izip_longest来完成此操作。 对于处理可迭代数据类型的任何事情, itertools软件包都非常有用。 如果您还有其他要执行此操作的列表,则可以将其扩展到任意数量的可迭代对象。

import itertools
map(sum,itertools.izip_longest(a,b,fillvalue = 0))

这使:

[2, 4, 6, 4]

使用itertools.izip_longest使用list comp压缩, fillvalue值为0,以保持两个列表中较长者的元素:

from itertools import izip_longest # zip_longest python 3

print([i+j for i,j in izip_longest(a,b,fillvalue=0)])

如果您正在执行数字运算,则可能会发现numpy有用:

import numpy as np
a = np.array([1, 2, 3, 4])
b = np.array([1, 2, 3])
b.resize(a.shape)
print(a+b)
[2 4 6 4]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM