我写了一小段代码来遍历列表并汇总内容(我知道有一个内置函数,但出于好奇而想这样做)。
list = [14, 42, 100, 15, 8, 16, 104, 8, 41, 5, 15, 10]
index = 1
result = list[0]
for range in (0, len(list)):
result = result + list[index]
index = index + 1
print(result)
由于某种原因,索引变量将迭代直到“ 3”并停止。感谢您的帮助。
答案 0 :(得分:3)
为什么?
因为for range in (0, len(list))
只会迭代 两次:
len(list)
为12。因此,您最终只在列表中添加了前3个元素。
# Wrong code
result = list[0]
for range in (0, len(list)):
result = result + list[index]
index = index + 1
# 14 + 42 + 100 = 156
更正:
lst = [14, 42, 100, 15, 8, 16, 104, 8, 41, 5, 15, 10]
result = 0
for i in range(len(lst)):
result = result + lst[i]
print(result)
更多 Python :
lst = [14, 42, 100, 15, 8, 16, 104, 8, 41, 5, 15, 10]
result = 0
for x in lst:
result += x
print(result)
缩影:
sum(lst)
注意-
没有名字:
答案 1 :(得分:1)
这真的很基础。
summ = 0
for i in range(len(list)):
summ += list[i]
您的for循环完全不正确。您用两个元素遍历元组的元素,再加上一个加总到三个...
答案 2 :(得分:0)
您正在遍历具有两个元素0
和len(list)
的元组。
您应该使用范围,以获取从0到len(list)
的所有数字的范围:
result = list[0]
for index in range(1, len(list)):
result = result + list[index]
但是您应该直接遍历列表的元素:
numbers = [14, 42, 100, 15, 8, 16, 104, 8, 41, 5, 15, 10]
result = 0
for number in numbers:
result += number
答案 3 :(得分:0)
替代解决方案:当您想同时获取每个元素的索引和值时,一种更优雅的解决方案是使用enumerate()。这避免了我们担心len和增加索引
注意:虽然我们没有使用下面的索引
lst = [14, 42, 100, 15, 8, 16, 104, 8, 41, 5, 15, 10]
result = 0
for i, num in enumerate(lst):
result += num
print(result)