【问题标题】:How to increment the index itself and not the value stored in index? [duplicate]如何增加索引本身而不是索引中存储的值? [复制]
【发布时间】:2018-12-29 16:54:54
【问题描述】:

我想将索引“i”加一,而不是将存储在“i”中的值加一。我该怎么做?

我已经尝试过“i+=1”、“i=i+1”、“i+1” - 它们都不适合我。

lst=[1,2,3]
for i in lst:
    print(i+1)

预期结果:

2
3
index out of bound error

实际结果:

2
3
4

【问题讨论】:

  • 为什么会出现索引错误?你永远不会索引任何东西。
  • 你想要一个错误作为输出?
  • @Austin in java 如果我尝试访问不适用的索引,我会得到索引超出范围的错误。我正在尝试用 python 实现同样的目标
  • 在你的代码中,i 不是一个索引,它是你的数组中的当前值正在被 for-in'd。您想使用标准 for 循环。
  • for i in list 的行为类似于 java 的扩展 for 循环,因此如果您这样做,它将返回实际值而不是索引

标签: python


【解决方案1】:

试试下面的代码,这会给你一个从 0 到 3(不包括)的范围,然后用 i 遍历 my_list。

my_list = [1,2,3]
for i in range(0,len(my_list)):
  print(my_list[i+1])

因此,您将获得预期的结果

2
3
Traceback (most recent call last):
  File "<stdin>", line 2, in <module>
IndexError: list index out of range

list index out of range 等价于 java index out of bound error

【讨论】:

    猜你喜欢
    • 2021-11-04
    • 1970-01-01
    • 1970-01-01
    • 2014-09-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多