2014-01-15 92 views
0

鉴于-1追溯到第一项中的元组,和切片的结束索引的索引之前停止,为什么Python的元组切片

x=(1,2,3,4,5) 
x[0:-1] 

产量

(1, 2, 3, 4) 

代替停在第一个5之前的指数?

感谢

+0

[这个问题已经被回答过,并且非常透彻。](http://stackoverflow.com/questions/509211/pythons-slice-notation) – 2014-01-15 04:41:51

回答

7

-1不回去的第一项中的一个元组

x=(1,2,3,4,5) 
x[-1] 

产生

5 
1

切片是这样工作的:

x[start : end : step] 

在你的榜样,start = 0,所以它会从头开始,end = -1这意味着年底将元组的最后一个元素(不是第一个)。您没有指定step,因此它的默认值为1

link from Python docs可能会有所帮助,有一些切片的例子。

5

它有助于为之间想切片点的元素

x = ( 1, 2, 3, 4, 5 ) 
     | | | | | | 
     0 1 2 3 4 5 
    -5 -4 -3 -2 -1 
+0

你也可以说最终指数是非包含的。 –

0

任何python序列中的-ve值表示:

Val = len(sequence)+(-ve value) 

从/到len(sequence)+(-ve value)开始/停止,取决于我们指定的内容。