[英]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.