使用两个或多个列表创建函数

时间:2016-02-20 00:07:33

标签: python list function

 lista = [100, 200, 300]
 listb = [10, 20, 30]

使用python 2.7,如果我想定义一个函数,它将从列表a中获取第一个元素并将其添加到列表b的第一个元素,然后以这种方式遍历列表,我该怎么做?有没有办法设置它可以为任意数量的列表执行此操作的功能?

2 个答案:

答案 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范例,也可以将mapadd运算符结合使用:

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]