[英]Trying to sum specific elements of a list with a "for i in range(len(list))" loop
list=[[10,12,22],[18,20,38],[32,35,67],[57,66,123],[103,121,224]]
这是我正在循环的列表。
for i in range(len(list)):
print(f"The sum of every 3rd element within each sub list is {sum(list[i][2])}
当我运行它时,错误消息是:
TypeError: 'int' object is not iterable
这是不可能做到的,还是我犯了一个愚蠢的错误? 我对编码很陌生,所以对某些人来说似乎是一个非常愚蠢的问题表示歉意。
我会帮你的。 首先不要使用 python 关键字作为变量名 - 所以list
不好。 其次,我看到很多人遍历列表的范围,然后按索引引用。 这是没有必要的。
l =[[10,12,22],[18,20,38],[32,35,67],[57,66,123],[103,121,224]]
for i in range(len(l)):
print(l[i][2])
for x in l:
print(x[2])
您正在寻找的答案:
sum(x[2] for x in l)
您的代码分别获得每个第 i 个子数组的第 3 个 integer,并且不能将 int 求和到自身。 这是执行此操作的正确方法:
arr = [[10, 12, 22], [18, 20, 38], [32, 35, 67], [57, 66, 123], [103, 121, 224]]
s = 0
for i in range(len(arr)):
s += arr[i][2]
print(f"The sum of every 3rd element within each sub array is {s}
是的,你犯了一个愚蠢的错误;-)。 这: sum(list[i][2]) 意味着你对 list[i] 的第二个元素求和,它是一个 int。 这是不可迭代的。 使用列表推导式就可以了
print(f"The sum of every 3rd {sum([j[2] for j in list])}")
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.