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