2017-08-01 114 views
-4

和平對你們 我開始學習Python使用頭第一本書,我碰到這個 [:: - 1]列表中我知道,當你不包括「開始」它默認等於0和「stop」等於列表中的最大索引號 ,所以如果我們說max是5,所以這意味着[0:5:-1],如果你運行這個,你將得到第一個索引,但是如果你運行這個[:: -1]它以相反的順序給你列表爲什麼? isnt [:: - 1] == [0:5:-1]但它看起來等於[-1:5:-1]! 那麼爲什麼這裏的步驟索引定義了開始索引!爲什麼[:: - 1]反向列表而不是僅返回第一個索引?

book = "The Hitchhiker's Guide to the Galaxy" 
booklist = list(book) 
booklist = ['T', 'h', 'e', ' ', 'H', 'i', 't', 'c', 'h', 'h', 'i', 
     'k', 'e', 'r', "'", 's', ' ', 'G', 'u', 'i', 'd', 'e', 
     ' ', 't', 'o', ' ', 't', 'h', 'e', ' ', 'G', 'a', 'l', 
     'a', 'x', 'y'] 
backwards = booklist[::-1] 
print(''.join(backwards)) 

輸出>>> yxalaG EHT OT ediuG s'rekihhctiH EHT

backwards = booklist[0::-1] print(''.join(backwards))

輸出>>>Ť

backwards = booklist[-1::-1] 
print(''.join(backwards)) 

輸出>>> yxalaG EHT OT ediuG s'的rekihhctiH ehT

回答

1

如果您提供,切片操作需要一些步驟。它就像這樣[start:stop:step]所以如果你寫[::-1]。默認情況下,start,stop,step都是None。由於我們提供了-1step,意味着我們減少索引。所以我們得到了輸入數據的反轉。

>>> d = 'Galaxy' 
>>> d[None:None:None] 
'Galaxy' 
>>> d[None:None:-1] 
'yxalaG' 
>>> d[::-1] 
'yxalaG' 
+0

我會更新答案 – ksai

+0

它仍然沒有解釋_why_'[:: - 1]'反轉列表。 (我認爲答案就是'list'和'str'以這種方式解釋切片。) –

相關問題