【问题标题】:Python: For loop list gives IndexErrorPython:For循环列表给出IndexError
【发布时间】:2019-09-08 06:46:54
【问题描述】:
a = [1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89]

for i in a:
   print(a[i])

IndexError: list index out of range

我不明白为什么会出现此错误。

【问题讨论】:

  • for i in a: 正在迭代 a 的元素而不是索引。因此,您将元素本身用作列表中的索引。
  • @JohanL 如何迭代索引?
  • for i, e in enumerate(a): 将给出索引和值。
  • @davedwards 只要元素不重复。
  • 是的,没错,i 是索引,e 是元素(或值)。

标签: python arrays for-loop


【解决方案1】:

您引用的是值而不是索引。 试试:

for i in range(len(a)):
    print(a[i])

【讨论】:

    【解决方案2】:

    在您给出的示例中实际上不需要索引,因为您只打印列表中项目的值,在这种情况下直接打印项目就足够了:

    for i in a:
        print(i)
    

    【讨论】:

      【解决方案3】:

      如果你想要一个元素的索引,可以enumerate数组中的数据,使用

      for i, e in enumerate(a):
          print(a[i]) # assuming this is just a placeholder for a more complex instruction
      

      给出你想要的,其中i 是索引,e 是列表中元素的(值)。但通常您不需要索引,因为您想直接使用元素的值。在这些情况下,最好只做

      for e in a:
          print(e)
      

      【讨论】:

        猜你喜欢
        • 2018-10-29
        • 1970-01-01
        • 1970-01-01
        • 2019-05-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-11-13
        相关资源
        最近更新 更多