反向切片Python

2024-04-26 21:56:12 发布

您现在位置:Python中文网/ 问答频道 /正文

在Python中,我知道可以将序列切片为seq[从:到+1:步进]。但是如果使用-1的步长反向切片,为什么不显示from元素呢?它将一个元素从我所期望的向右移动。你知道吗

x="012345"
x[4:2:-1] 

打印43张,而不是我预期的4321张。如果步骤是-1,那么它会打印seq[从:到-1:步进]。似乎前后矛盾。你知道吗


Tags: from元素步骤切片序列seq步长
3条回答

切片从第一个数字(含)到第二个数字(不含),步骤是第三个数字。在您的例子中,第一个数字访问“4”,第二个数字访问“2”。当步长为-1时,它将从第一个数字(“4”)处的字符开始,然后得到下一个字符(或步长为-1时,实际上是前一个字符“3”),但由于第二个索引(2)是独占的,因此将在此处停止。要获取从“4”到“0”的所有内容,可以执行x[4:0:-1]或更方便的操作x[:5]。你知道吗

如果你想切到4321,你应该做x[-2:0:-1]。你知道吗

这意味着从-2开始(-1是最后一个元素)到0(没有任何元素是第一个元素),步骤是-1。你知道吗

它工作正常。
如果你需要你的结果

>>> x[4:0:-1]
'4321'

这意味着,从第5个元素开始切片,一直到第1个元素(但不包括它)。只有将step size指定为负值时,这种切片才有效。你知道吗

所以一般来说,按照奥洛福姆的答案。你知道吗

相关问题 更多 >