lista = [100, 200, 300]
listb = [10, 20, 30]
使用python 2.7,如果我想定义一个函数,它将从列表a中获取第一个元素并将其添加到列表b的第一个元素,然后以这种方式遍历列表,我该怎么做?有没有办法设置它可以为任意数量的列表执行此操作的功能?
答案 0 :(得分:4)
您可以将列表理解与zip
结合使用。 zip
结合了两个列表,允许您对其元素求和:
[a+b for a,b in zip(lista, listb)]
您的方法看起来就像这样
def method(lista,listb):
return [a+b for a,b in zip(lista, listb)]
或者,如果您更喜欢MapReduce范例,也可以将map
与add
运算符结合使用:
from operator import add
def method (lista, listb):
return map(add,lista,listb)
答案 1 :(得分:0)
一般解决方案:
list_a = [1, 2, 3]
list_b = [5, 7, 9]
list_c = [100, 200, 300]
lists = [list_a, list_b, list_c]
print [sum(k) for k in zip(*lists)] # [106, 209, 312]