2010-10-25 22 views
57

我是Python新手。我在列表索引中看到:,特別是當它與函數調用關聯時。Python列表中的冒號(:)列表索引

Python 2.7文檔建議lists.append轉換爲a[len(a):] = [x]。爲什麼需要用冒號後綴len(a)

據我所知,:用於識別字典中的鍵。

+4

我從哪裏得到python 4.7?我想要!在2.7中,[The Tutorial](http://docs.python.org/tutorial/introduction.html#lists)很好地涵蓋了你的問題。 – aaronasterling 2010-10-25 06:44:01

回答

94

:是切片語法來「切出」在序列的子部分的分隔符,[start:end]

[1:5] is equivalent to "from 1 to 5" (5 not included) 
[1:] is equivalent to "1 to end" 
[len(a):] is equivalent to "from length of a to end" 

關注http://www.youtube.com/watch?v=tKTZoB2Vjuk大約40:00,他開始解釋。

也適用於元組,詞典和列表。

+7

請記住,[1:5]以索引1處的對象開始,索引5處的對象不包含在內。您還可以使用[:] – 2010-10-25 07:51:20

+2

製作列表的軟拷貝。因爲Google標點符號實際上並不那麼容易,所以我特別感謝您找到您的答案,並發現它很有幫助。即使使用像symbolhound這樣常用的東西,我也害怕無法迅速找到答案。 – 2013-08-03 11:25:47

+0

不適用於字典。應用d [:5]是d .__ getitem __(slice(0,5,None))的等價性。切片不可散列。 – 2015-07-04 02:31:32

7

a[len(a):] - 這會讓你的長度到最後。它選擇一個範圍。如果你反轉a[:len(a)]它會讓你開始,無論是len(a)