为什么这个错误在这种情况下出现,而在另一种情况下却没有


def biggestWithPos(A):
answer = 0
for i in A:
if i > answer:
answer = i
return (answer)

为什么当我将answer = i更改为answer = A[i]时会出现错误:list index out of range

在此:

for i in A:

i不是索引,而是A中的元素

如果A[4, 5, 6],那么在执行此操作时,您将尝试在第一次迭代中访问A[4],这是一个超出范围的索引。

在Python中,当您在类似for i in A的for循环中时,i不是您正在迭代的迭代器的索引:i是迭代器a的当前元素。让我们通过一个例子来看看这意味着什么:

A = [7, 4, 3, 2]
for i in A:
print(i)

这段代码将打印7 4 3 2(每一个都在新行上(,而不是0 1 2 3,因为循环中的i代表迭代器的当前元素,而不是索引。如果您尝试打印A[i],您将得到与您在回答中描述的相同的错误,因为7(即第一次迭代期间的i值(不是当前迭代的索引,而是您当前正在迭代的元素。

相关内容

最新更新