在Python中我知道你可以将序列切片为seq [from:to + 1:step]。但是如果你反向切片,使用-1的步长,为什么它不显示from元素?它将一个元素从我期望的方向向右移动。
x="012345"
x[4:2:-1]
按照我的预期打印43,而不是4321。因此,如果step为-1,则打印seq [from:to-1:step]。似乎不一致。
答案 0 :(得分:0)
如果要切片到4321,则应该x[-2:0:-1]
。
这意味着从-2开始(-1是最后一个元素)并转到0(没有任何东西是第一个元素),步骤为-1。
答案 1 :(得分:0)
按预期工作。
如果您需要结果,
>>> x[4:0:-1]
'4321'
这意味着,从第5个元素开始切片,直到第1个元素(但不包括它)。仅当您将step size
指定为否定时,此类切片才有效。
一般来说,请遵循olofom的回答。
答案 2 :(得分:0)
切片从第一个数字(包括)转到第二个数字(不包括),步骤为第三个数字。在您的情况下,第一个号码访问" 4"和第二个号码访问" 2"。步长为-1,它将从第一个数字(" 4")的位置开始,然后获得下一个字符(或步长为-1,实际上是前一个字符) " 3"),但会停在那里,因为第二个索引(2)是独占的。从#34; 4"到" 0",您可以x[4:0:-1]
或更方便x[:5]
。