3

我很难理解当我在切片的情况下设置负值时会发生什么。

我知道[::-1]反转一个字符串。我想知道它分配什么值来启动和停止以获得反向。

我认为结束字符串会是 0。并尝试过

f="foobar"

f[0:5:-1]--->它没有给我任何输出。为什么?

我读过开始不应该通过停止。在负步长值的情况下也是如此吗?

谁能帮我清除我的疑问。

4

2 回答 2

4

不产生任何输出的原因f[0:5:-1]是因为你从 0 开始,并试图倒数到 5。这是不可能的,所以 Python 返回一个空字符串。

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

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


你还问:

我读过 start 不应该通过 stop 。在负步长值的情况下也是如此吗?

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

于 2013-09-27T07:02:40.900 回答
0

你可以这样想:

其中f[0:5],0是开始位置和 5-1结束位置。

其中f[0:5:-1],5是开始位置和0+1结束位置。

在切片中,起始位置必须低于结束位置。如果不是这种情况,则结果为空字符串。因此f[0:5:-1]返回一个空字符串。

于 2013-09-27T07:23:00.887 回答