当我要求它给出-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 贡献列表 & 目录部分