【发布时间】:2023-01-02 00:03:59
【问题描述】:
我得到了一个包含 958 个元素的列表。
myList = [1, 2, 3, 4, ..., 958]
我想取前 100 个元素,然后取下 100 个(从 100 到 200)等等。
我试过的:
sum = 0
ct = 0
for i in range(len(myList):
sum = sum + myList[i]
ct = ct + 1
if ct == 100:
ct = 0
print(sum)
sum = 0
它在第 900 个元素之前一直有效。然后它不能对 myList 的最后 58 个元素求和,因为 ct 不会得到 100。
有任何想法吗?
【问题讨论】:
-
当你得到 100 的倍数时,你只打印一个总和。所以你永远不会打印最后 58 个元素的总和。
-
您不是在对列表元素求和,而是在对索引求和。使用
for i in myList:对元素求和。 -
您还有效地使用
ct来复制i的值。如果您遵循@Barmar 的建议,也可以考虑使用枚举:for i, n in enumerate(myList): -
50 x 50元素列表在哪里? -
@Barmar 我用
myList[i]修复了。