2010-10-25 180 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)