当我要求它给出-1的值时,Python给了我列表的最后一个值[重复]

Posted

技术标签:

【中文标题】当我要求它给出-1的值时,Python给了我列表的最后一个值[重复]【英文标题】:Python gives me last value of list when I ask it to give the value at -1 [duplicate] 【发布时间】: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开始 我不知道您认为实际会发生什么? 【参考方案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

【讨论】:

以上是关于当我要求它给出-1的值时,Python给了我列表的最后一个值[重复]的主要内容,如果未能解决你的问题,请参考以下文章

我要翻译《Think Python》-002 贡献列表 & 目录部分

当给出其他两个值时,有没有办法计算像素的颜色分量(如绿色)的值?

写入我要提取的文件时,Git 给了我“权限被拒绝”错误

当实际有值时,响应正文返回 null

[引用数组的多个值时,使用Python列表理解排除重复项

设置列表项的值时自定义适配器中的空指针异常