当sequence[1:0]
或sequence[1:]
成功返回列表尾部时,为什么sequence[1:n] (where n >= sequence length)
会返回一个空列表?
我很确定它与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]
答案 0 :(得分:1)
要向后移动元素,您需要将步骤作为负值传递
l = [1,2,3,4]
print l[1:0:-1]
# [2]
当你说l[1:0]
Python需要the step value as 1, by default, step
is 1
时。
当step
is greater than 0 and start
is greater than or equal to stop
时,要返回的切片的长度将设置为0.因此,将返回一个空列表。
if ((*step < 0 && *stop >= *start) || (*step > 0 && *start >= *stop)) {
*slicelength = 0;
}