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值(不是当前迭代的索引,而是您当前正在迭代的元素。