【发布时间】:2020-09-03 02:30:44
【问题描述】:
t = [1, 2, 3]
def cumsum(t):
t2 = []
total = 0
i = 0
while i < len(t):
total += t[i]
t2[i].append(total)
i += 1
return t2
cumsum(t)
此代码获取前两个列表整数的总和并将其附加到另一个列表。 我觉得这在逻辑上应该可行,我不明白为什么当 len(t)= 3 时 i
【问题讨论】:
-
从此行
t2[i].append(total)删除[i]。t2开头是空列表,因此使用0对其进行索引会产生 IndexError。 -
要将元素附加到 t2 您不需要按索引引用它。只做 t2.append(total)
-
t2[i]不存在,只追加不索引。 -
另外,到
append到t2[i],t2[i]本身必须是一个列表。如果t2[i]已经存在,则必须使用t2[i] = total更改其值。 -
换句话说,您检查 i 是 t 的有效索引,但 不是 t2。