了解负值切片步长值

2022-03-26 00:00:00 python slice

问题描述

我在理解在切片的情况下将负值设置为步长时会发生什么情况时遇到问题。

我知道[::-1]反转字符串。我想知道它为开始和停止分配了什么值以获得反转。

我以为字符串的末尾应该是0。并尝试

f="foobar"

f[0:5:-1]--->没有输出。为什么?

并且我已经阅读了"开始不应该通过停止"。在步长值为负的情况下也是这样吗?

有人能帮我消除疑虑吗?

Python

f[0:5:-1]不生成任何输出的原因是您从0开始,并尝试倒数到5。这是不可能的,因此推荐答案返回空字符串。

相反,您需要f[5:0:-1],它返回字符串"raboo"

请注意,该字符串不包含f字符。为此,您需要f[5::-1],它返回字符串"raboof"


您还问:

我已阅读开始不应通过停止。在步长值为负的情况下也是这样吗?

不,这不是真的。通常,start值不应传递stop值,但仅当步骤为正时。如果步长为负,则反之亦然。根据需要,start必须高于stop值。

相关文章