This question already has answers here:
Understanding slice notation
                                
                                    (32个答案)
                                
                        
                                5年前关闭。
            
                    
我在理解如果在切片时将负值放在台阶上会发生什么,这是一个问题。

我知道[::-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值。

09-17 12:47