IndexError:列表索引超出范围(打印整数)
Posted
技术标签:
【中文标题】IndexError:列表索引超出范围(打印整数)【英文标题】:IndexError: List index out of range (printing integers) 【发布时间】:2015-10-16 18:35:17 【问题描述】:我正在通过一段时间条件运行我的定义,目前我只想让它打印列表中的所有数字,直到它达到列表的长度。
但是,当我构建它时,我得到了错误
"IndexError: list index out of rage"
我错过了什么?
numList = [5, 2, 21, 8, 20, 36, 1, 11, 13, 4, 17]
def findHighest(intList):
iIndex = 0
iValue = intList[iIndex]
while iIndex != len(intList):
print(iValue)
iIndex = iIndex + 1
iValue = intList[iIndex]
print(findHighest(numList))
我打印了列表,但随后出现编译器错误
【问题讨论】:
只有在intList
使用后才应该增加索引
【参考方案1】:
问题是当 iIndex 比您要向索引加 1 的列表少 1 时。例如,如果您的列表大小为 10 并且 iIndex 为 9,则您将 1 添加到 9 并设置 iValue=intList[10] 考虑到列表是基于 0 的。
numList = [5, 2, 21, 8, 20, 36, 1, 11, 13, 4, 17]
def findHighest(intList):
iIndex = 0
iValue = intList[iIndex]
while iIndex != len(intList)-1:
print(iValue)
iIndex = iIndex + 1
iValue = intList[iIndex]
print(findHighest(numList))
【讨论】:
但是因为我一开始就将 iIndex 设置为 0,所以我很困惑为什么它不能达到 !=,当然 iIndex 会增加到 9,然后当它是 = = 到 9,它会停止吗? 但是您的 while 循环条件是列表的大小,即 10。所以基本上,while 循环变为 9,然后递增 1,这使得语句 iValue = intList[10] 对,所以它没有用我的原始代码检查最后一个索引 10? (只是想确保我的理解是正确的)以上是关于IndexError:列表索引超出范围(打印整数)的主要内容,如果未能解决你的问题,请参考以下文章