我很难理解当我在切片的情况下设置负值时会发生什么。
我知道[::-1]
反转一个字符串。我想知道它分配什么值来启动和停止以获得反向。
我认为结束字符串会是 0。并尝试过
f="foobar"
f[0:5:-1]--->
它没有给我任何输出。为什么?
我读过开始不应该通过停止。在负步长值的情况下也是如此吗?
谁能帮我清除我的疑问。
不产生任何输出的原因f[0:5:-1]
是因为你从 0 开始,并试图倒数到 5。这是不可能的,所以 Python 返回一个空字符串。
相反,您想要f[5:0:-1]
,它返回字符串"raboo"
。
请注意,该字符串不包含该f
字符。为此,您需要f[5::-1]
,它返回字符串"raboof"
。
你还问:
我读过 start 不应该通过 stop 。在负步长值的情况下也是如此吗?
不,这不是真的。通常,该start
值不应传递该stop
值,但仅当步长为正时。如果步长为负,则反之亦然。start
必然地,必须高于价值stop
。
你可以这样想:
其中f[0:5]
,0
是开始位置和 5-1
结束位置。
其中f[0:5:-1]
,5
是开始位置和0+1
结束位置。
在切片中,起始位置必须低于结束位置。如果不是这种情况,则结果为空字符串。因此f[0:5:-1]
返回一个空字符串。