2014-01-15 38 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)開始/停止,取決於我們指定的內容。