【发布时间】:2014-02-03 09:58:37
【问题描述】:
鉴于 -1 回到元组中的第一项,并且切片的结束索引在该索引之前停止,为什么
x=(1,2,3,4,5)
x[0:-1]
产量
(1, 2, 3, 4)
而不是在第一个 5 之前的索引处停止?
谢谢
【问题讨论】:
鉴于 -1 回到元组中的第一项,并且切片的结束索引在该索引之前停止,为什么
x=(1,2,3,4,5)
x[0:-1]
产量
(1, 2, 3, 4)
而不是在第一个 5 之前的索引处停止?
谢谢
【问题讨论】:
切片是这样工作的:
x[start : end : step]
在您的示例中,start = 0,因此它将从头开始,end = -1 这意味着结尾将是元组的最后一个元素(不是第一个)。您没有指定step,因此它将使用默认值1。
这个link from Python docs 可能会有帮助,有一些切片的例子。
【讨论】:
x[start : end : step] 中的 end 不会出现在切片结果中。
-1 不会回到元组中的第一项
x=(1,2,3,4,5)
x[-1]
产量
5
【讨论】:
将切片点视为元素之间的会有所帮助
x = ( 1, 2, 3, 4, 5 )
| | | | | |
0 1 2 3 4 5
-5 -4 -3 -2 -1
【讨论】:
任何 python 序列中的 -ve 值意味着:
Val = len(sequence)+(-ve value)
从len(sequence)+(-ve value) 开始/停止,取决于我们指定的内容。
【讨论】: