列表的列表行的总和,不使用内置的 sum()
sum of a list row of a list, without using inbuilt sum()
对于测验问题,必须使用嵌套列表来查找每一行的总和,而无需使用内置的 sum()
我的代码(1)
def row_sums(square):
""" Takes a nested list and returns the sum of the row"""
row_1 = square[0]
for sum_1 in row_1:
for sum_r_1 in sum_1:
sum_row_1 = 0
sum_r_1 += sum_row_1
return sum_r_1
问题是我得到的 int 对象是不可迭代的
或
我的代码(2)
def row_sums(square):
""" Takes a nested list and returns the sum of the row"""
row_1 = square[0]
for sum_1 in row_1:
sum_r_1 = 0
sum_r_1 += sum_1
return sum_r_1
我只得到第 1 行列表的第一项。在这种情况下,它是数字 2
来自测验服务器的输入
square = [
[2, 7, 6],
[9, 5, 1],
[4, 3, 8]
]
print(row_sums(square))
预期结果
[15, 15, 15]
我知道我试图获取 atm 的只是第一行,但是一旦我有了它,我就可以轻松地完成其他行
你非常接近:
def row_sums(square):
sums = []
for row in square:
rowsum = 0
for num in row:
rowsum += num
sums.append(rowsum)
return sums
您的代码不起作用是因为
for sum_1 in row_1:
sum_r_1 = 0
sum_r_1 += sum_1
return sum_r_1
每次你转到一个新号码时,你将 sum_r_1
设置回 0
,然后 return
它...所以它会通过第一个号码,添加它,然后立即 return 不看任何其他数字。
相反,您想设置起始值并 return 在 循环之外:
sum_r = 0
for sum_1 in row:
sum_r += sum_1
return sum_r
这将使您排在第一行。我建议再做一次尝试,而不是从 SO 那里获取完整的解决方案。
这里有一种遍历列表列表的简单方法,将内部列表元素添加到一起并将它们附加到另一个列表。
square =[
[2,2,2],
[1,1,1],
[3,3,3]
]
sumLine=[]
for i in range(len(square)):
s =0
for n in square[i]:
s = s + n
sumLine.append(s)
#results in [6, 3, 9]
对于测验问题,必须使用嵌套列表来查找每一行的总和,而无需使用内置的 sum()
我的代码(1)
def row_sums(square):
""" Takes a nested list and returns the sum of the row"""
row_1 = square[0]
for sum_1 in row_1:
for sum_r_1 in sum_1:
sum_row_1 = 0
sum_r_1 += sum_row_1
return sum_r_1
问题是我得到的 int 对象是不可迭代的
或
我的代码(2)
def row_sums(square):
""" Takes a nested list and returns the sum of the row"""
row_1 = square[0]
for sum_1 in row_1:
sum_r_1 = 0
sum_r_1 += sum_1
return sum_r_1
我只得到第 1 行列表的第一项。在这种情况下,它是数字 2
来自测验服务器的输入
square = [
[2, 7, 6],
[9, 5, 1],
[4, 3, 8]
]
print(row_sums(square))
预期结果 [15, 15, 15]
我知道我试图获取 atm 的只是第一行,但是一旦我有了它,我就可以轻松地完成其他行
你非常接近:
def row_sums(square):
sums = []
for row in square:
rowsum = 0
for num in row:
rowsum += num
sums.append(rowsum)
return sums
您的代码不起作用是因为
for sum_1 in row_1:
sum_r_1 = 0
sum_r_1 += sum_1
return sum_r_1
每次你转到一个新号码时,你将 sum_r_1
设置回 0
,然后 return
它...所以它会通过第一个号码,添加它,然后立即 return 不看任何其他数字。
相反,您想设置起始值并 return 在 循环之外:
sum_r = 0
for sum_1 in row:
sum_r += sum_1
return sum_r
这将使您排在第一行。我建议再做一次尝试,而不是从 SO 那里获取完整的解决方案。
这里有一种遍历列表列表的简单方法,将内部列表元素添加到一起并将它们附加到另一个列表。
square =[
[2,2,2],
[1,1,1],
[3,3,3]
]
sumLine=[]
for i in range(len(square)):
s =0
for n in square[i]:
s = s + n
sumLine.append(s)
#results in [6, 3, 9]