为何修改Python代码赋值语句后出现列表索引越界错误?
为什么修改后会出现索引越界错误?
原代码里的for i in A循环,i取的是列表A里的元素本身的值,不是元素的索引位置。比如你的列表是[4, 2, 6],循环时i会依次是4、2、6,而不是0、1、2这种索引值。
改成answer = A[i]之后,你是在用元素的值当索引去访问列表。还是拿上面的例子说,第一次循环i=4,但列表长度只有3,合法的索引只能是0、1、2,用4去访问A[4]自然就超出了列表的范围,触发list index out of range错误。
如果想通过索引遍历列表,正确的写法应该是用range(len(A))来生成索引:
def biggestWithPos(A): answer = 0 for i in range(len(A)): if A[i] > answer: answer = A[i] return answer
内容的提问来源于stack exchange,提问作者patrik maco
相关产品推荐
相关产品推荐

