Is list[i:j] guaranteed to be an empty list if list[j] precedes list[i]?
Python教程解释了索引为负时的切片行为,但我找不到描述结束索引位于开始索引之前行为的文档。(我也看过解释python的slice符号,也许我读得不够仔细,但是这里的答案似乎没有解决这一点。)
我观察到的行为是返回一个空列表,这对我来说似乎是合理的。然而,对于我来说,以相反的顺序返回
如果
是的,如果
1 | list[i:j:-1] |
因为显式比隐式好。
这一点记录在通用顺序操作中,脚注4:
The slice of s from i to j is defined as the sequence of items with index k such that
i <= k < j . If i or j is greater thanlen(s) , uselen(s) . If i is omitted orNone , use0 . Ifj is omitted orNone , uselen(s) . If i is greater than or equal to j, the slice is empty.
大胆强调我的。
自定义类型可以自由地以不同的方式解释这一点。