我正在尝试运行此代码片段:
test="test"
print(test[3:-1:-1])
对于切片,起始索引应从 3 开始(含),停止索引应为 -1(不包括),这意味着它应该一直到 0(含),切片的顺序与我提到的步骤相反,为 -1,但是我得到的结果是空字符串。
为什么这段
test[3:-1:-1]
不等于test[3::-1]
?
我是这样理解的。负索引更多是为了方便而不是为了逻辑。
例如,要表示最后一个字符:无需计算字母或提及
test[len(test)-1]
,而是可以轻松提及 test[-1]
。所以这里的逻辑是:如果你开始将第一个字符索引为 0,为了表示反向表示,你应该从 -1 开始计数。如果还添加第一个字符,如果添加-1,逻辑上不能有两个具有相同索引的值。所以第一个字母的前一个字符变成-5(对于字符串测试)
所以应该遵循以下任何一个:
print(test[3:-5:-1])
print(test[-1:-5:-1])
print(test[::-1])