我正在编写有关两个列表和sum元素的代码,而不使用sum函数。因此,我需要返回其元素的总和。如何定义列表c和列表a和b的总数
下面的代码是我已经尝试过的。
def add(list_a, list_b):
list_a = [1, 2, 3, 4, 5]
list_b = [1, 2, 3, 4, 5]
list_c = []
for i in range (0,5):
list_c.append(list_a[i]+second[i])
print (list_c)
错误代码:
文件“ sum.py”,第7行,位于
list_c.append(list_a [i] + second [i])
NameError:未定义名称“ list_c”
答案 0 :(得分:1)
您有缩进问题。如果缩进for
块和print
语句,它应该可以工作。您也有错字,second[i]
应该是list_b[i]
。
def add(list_a, list_b):
list_c = []
for i in range(0,5):
list_c.append(list_a[i]+list_b[i])
return(list_c)
list_a = [1, 2, 3, 4, 5]
list_b = [1, 2, 3, 4, 5]
print(add(list_a, list_b))
# [2, 4, 6, 8, 10]
写这个的一个很短的方法是:
print([x+y for x,y in zip(list_a, list_b)])
仅当列表具有相同长度时才有效。
答案 1 :(得分:1)
有两个问题。首先,您不需要在函数内定义列表,其次,您将第二个列表引用为second
而不是list_b
。以下是您所需要的:
list_a = [1, 2, 3, 4, 5]
list_b = [1, 2, 3, 4, 5]
list_c = []
for i in range(0, 5):
list_c.append(list_a[i] + list_b[i])
print (list_c)
或者,如果您想将其用作可重用函数,则可以将循环逻辑移入该函数本身,并将列表作为参数传递:
def add(list_a, list_b):
summed_list = []
for i in range(0, 5):
summed_list.append(list_a[i] + list_b[i])
return summed_list
summed = add([1, 2, 3, 4, 5], [1, 2, 3, 4, 5])
print(summed)
答案 2 :(得分:0)
您可以使用map
来达到以下目的:
list_a = [1, 2, 3, 4, 5]
list_b = [1, 2, 3, 4, 5]
def add(a,b):
return list(map(lambda x,y:x+y,list_a,list_b))
print(add(list_a,list_b))
输出:
[2, 4, 6, 8, 10]