Python zip()函数,带有错误消息

时间:2018-05-24 18:17:03

标签: python

我尝试使用zip和list comprehension对两个列表进行求和,这对我有用。

a=[1,2,3]

b=[4,5,6]

three = [sum(i) for i in zip(a,b)]

print(three)

输出: [5,7,9]

接下来我尝试使用一个函数。我收到此错误消息:

def sum(a,b):

    for i in zip(a,b):

       return sum(i)

print(sum([1,2,3], [5,6,7])) 
  

返还总和(i)

     

TypeError:sum()缺少1个必需的位置参数:'b'

请让我明白我哪里出错。

2 个答案:

答案 0 :(得分:0)

错误在返回行'return sum(i)'上,你定义的sum函数有两个参数。

答案 1 :(得分:0)

一些事情,zip结合了两个列表,所以如果你要尝试:

for i, j in zip(a, b): print(i, j)

你会得到类似的东西:

1 4 2 5 3 6

您收到错误是因为sum是python的内置函数,所以如果您要将函数名更改为其他任何内容,它就不应该有同样的问题。< / p>

我认为你要找的是连接列表然后在结果列表中调用sum()

将您的方法更改为:

def add_lists(a, b):
   c = a + b
   return sum(c)