【问题标题】:Python gives me last value of list when I ask it to give the value at -1 [duplicate]当我要求它给出-1的值时,Python给了我列表的最后一个值[重复]
【发布时间】:2020-01-04 14:59:40
【问题描述】:

我在 python 3.7.1 上。

我正在使用数据结构,当使用列表时,我遇到了一个错误。 当我尝试访问索引 -1 时,python 给了我列表中的最后一个条目。

我打开了 python shell,并运行了以下命令:

>>> l = [0,1,2]
>>> l[-1]
2
>>> l[3]
Traceback (most recent call last):
  File "<pyshell#5>", line 1, in <module>
    l[3]
IndexError: list index out of range

这可能是由于 python 3.7.1 上的一个错误,但是除了更新 python 之外还有其他方法可以解决这个问题吗?我正在进行一个项目。

【问题讨论】:

  • python索引从0开始
  • 我不知道您认为实际会发生什么?

标签: python python-3.7


【解决方案1】:

负数表示您是从右侧而不是左侧数数。所以 l[-1] 访问数组中的最后一个索引, l[-2] 访问倒数第二个,等等。

l[3] 不起作用,因为您有 0、1 和 2 的索引,没有 3。

【讨论】:

    【解决方案2】:

    您有以下清单: l = [0,1,2] 列表的长度是 3,你有 3 个项目,但索引从 0 开始,所以:

    l [0] = 0

    l [1] = 1

    l [2] = 2

    l[3] 超出范围,因为列表从 0 变为 2

    当您使用负索引时,您会从右侧移动。

    l [-2] = 1

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-10-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-04
      • 1970-01-01
      • 1970-01-01
      • 2016-04-19
      相关资源
      最近更新 更多