如何添加两个列表的元素以创建包含更新值的新列表。例如:
EnumWindows
我知道这是一个简单的问题,但我对这件事情不熟悉,无法在其他任何地方找到答案......
答案 0 :(得分:1)
zip()方法可能是按顺序添加列的最佳方法。
a = [1, 3, 5] #your two starting lists
b = [2, 4, 6]
c = [] #the list you would print to
for x,y in zip(a, b): #zip takes 2 iterables; x and y are placeholders for them.
c.append(x + y) # adding on the the list
print c #final result
您可能想要了解列表推导,但对于此任务,它不是必需的。
答案 1 :(得分:1)
>>> a = [1,2,3]
>>> b = [3,4,5]
>>> import operator
>>> map(operator.add, a, b)
[4, 6, 8]
对于Python3,您需要使用list
,结果为map
>>> list(map(operator.add, a, b))
[4, 6, 8]
或只使用通常的列表理解
>>> [sum(x) for x in zip(a,b)]
[4, 6, 8]
答案 2 :(得分:0)
您可以使用itertools.izip_longest方法来解决此问题:
def pairwise_sum(a, b):
for x, y in itertools.izip_longest(a, b, fillvalue=0):
yield x + y
然后您可以像这样使用它:
a = [1, 2, 3]
b = [3, 4, 5]
answer = list(pairwise_sum(a, b))
答案 3 :(得分:0)
>>> a = [1,2,3]
>>> b = [3,4,5]
>>> map(sum, zip(a, b))
[4, 6, 8]