Python2:列表拆分语法 - 列表的尾部



为什么当sequence[1:]sequence[1:n] (where n >= sequence length)成功返回列表尾部时,sequence[1:0]返回空列表?

我很确定这与 python 迭代循环的方式有关,但我无法理解为什么它不起作用,因为它适用于小于零的数字。

例:

>>> l = [1,2,3,4]
>>> l[1:]
[2,3,4]
>>> l[1:100]
[2,3,4]
>>> l[1:0]
[]
>>> l[1:0:1]
[]
>>> l[1:-2]
[2]

要向后获取元素,您需要将步骤作为负值传递

l = [1,2,3,4]
print l[1:0:-1]
# [2]

当你说l[1:0] Python 将步长值作为 1 时,默认情况下,step1 .

step大于0且start大于等于stop时,要返回的切片的长度将设置为0。因此,将返回一个空列表。

if ((*step < 0 && *stop >= *start) || (*step > 0 && *start >= *stop)) {
    *slicelength = 0;
}

当你对startstop使用负索引时,Python 会为其添加序列的长度。

最新更新