我尝试使用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'
请让我明白我哪里出错。
答案 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)