在以下示例中:
s = '1234567' s[-2:-5] == ''
我很困惑为什么子串不是'654'而是空字符串。
您忘了在切片中包含step参数。默认情况下是1;因此,默认情况下,如果start大于stop,则切片将为空。将step指定为-1:
step
1
start
stop
-1
s = '1234567' print(s[-2:-5:-1]) # 654
从本质上讲,它将从指数-2开始向后指向-5,而不是试图前进指数-5,这是不可能的。
-2
-5