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:列表索引超出范围(打印整数)的主要内容,如果未能解决你的问题,请参考以下文章

Python:IndexError:列表索引超出范围

csv,IndexError:列表索引超出范围

IndexError:列表索引超出范围(对象检测)

IndexError:列表索引超出范围。无法理解问题出在哪里?

IndexError:列表索引超出范围(Python)

使用 TensorFlow 的“IndexError:列表索引超出范围”错误