【问题标题】:Python list index out of range python on an array数组上的Python列表索引超出范围python
【发布时间】:2018-08-18 16:03:40
【问题描述】:

我正在尝试从任何位置 l 到末尾遍历一个数组,但是一旦它到达最后一个位置而不是离开 while 循环,它就会向我显示一个错误“列表索引超出范围”

while l <= len(ordenado):
      ñ = ordenado[l]
      contador2 = contador2+ñ
      l = l+1

我已经看到了很多关于这个主题的答案,但我无法将它应用到我的问题中,也非常感谢任何帮助。

【问题讨论】:

  • 您可能想使用l &lt; len(ordenado) 而不是&lt;=
  • @bla 他可能还不知道,但他真正想要的是for 循环。或者只是sum()

标签: python arrays list while-loop


【解决方案1】:

替换

while l <= len(ordenado):

与:

while l < len(ordenado):

原因是python列表索引范围从零到 len(ordenado) - 1.

示例

>>> mylist = ['a', 'b', 'c']
>>> mylist[0]
'a'
>>> mylist[len(mylist)-1]
'c'
>>> mylist[len(mylist)]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
IndexError: list index out of range

如您所见,mylist[len(mylist)-1] 访问列表的最后一个元素。任何大于该值的索引都会生成一个IndexError

【讨论】:

    【解决方案2】:

    python 列表是 0 索引的,所以你需要使用。

    while l < len(ordenado):
    

    for 循环更适合你的情况。

    mylist = ['a', 'b', 'c']
    
    for i, item in enumerate(mylist):
        print(i, item) #where i will be 0,1,2 and item will be a,b,c
    

    【讨论】:

    • 是否存在数组/列表不是 0 索引的语言?
    • 我认为 vba 是。
    猜你喜欢
    • 2023-03-16
    • 2015-10-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多