我在理解当切片时将负值放入步骤时会发生什么时遇到问题。
我知道[::-1]
会反转一个字符串。我想知道它为启动和停止分配的值是什么值。
我认为结束字符串会是0。并试过
f="foobar"
f[0:5:-1]--->
它没有给我输出。为什么呢?
我读过开始不应该通过停止。在负步长值的情况下也是如此吗?
任何人都可以帮助我清除疑虑。
答案 0 :(得分:3)
f[0:5:-1]
不生成任何输出的原因是因为你从0开始,并试图向后计数到5.这是不可能的,所以Python返回一个空字符串。
相反,您需要f[5:0:-1]
,它返回字符串"raboo"
。
请注意,该字符串不包含f
字符。为此,您需要f[5::-1]
,它返回字符串"raboof"
。
您还问:
我已经阅读开始不应该通过停止。在负步长值的情况下也是如此吗?
不,这不是真的。通常,start
值不应传递stop
值,但仅限于步骤为正值。如果步骤为负,则反之亦然。必要时,start
必须高于stop
值。
答案 1 :(得分:0)
你可以这样想:
f[0:5]
,0
是起始位置,5-1
是结束位置。
f[0:5:-1]
,5
是起始位置,0+1
是结束位置。
在切片中,起始位置必须低于结束位置。
如果不是这种情况,则结果为空字符串。因此f[0:5:-1]
返回一个空字符串。