到目前为止,我们存储过字符串和数(包括整数和浮点数)。有时候可以把一堆东西存储在一起,放在某种“组”或者“集合”中,这可能很有用。这样一来,就可以一次对整个集合做某些处理,也能更容易地记录一组东西。有一类集合叫做列表(list),另一类叫做字典(dictionary)。
12.1 什么是列表
列表中的单个元素就叫做项或者元素(item),列表使用中括号来指出从哪里开始,到哪里结束,另外用逗号分隔列表内的各项。
12.2 创建列表
我们可以为变量赋一个数和字符串,还可以为变量赋一个列表。还可以创建一个空的列表:newList = []
12.3 向列表增加元素
要向列表增加元素,需要使用 append() 。向列表增加元素之前,必须先创建列表(可以是空列表,也可以非空)。
12.4 这个点是什么
为什么要在 friends 和 append() 之间加一个点(.)呢?
Python 中的很多东西都是对象(object)。要想用对象做某种处理,需要这个对象的名字(变量名),然后是一个点,再后面是要对对象做的操作。
12.5 列表可以包含任何内容
列表可以包含 Python 能存储的任何类型的数据,这包括数字、字符串、对象,甚至可以包含其他列表。并不要求列表中的元素是同种类型或同一种东西。这说明,一个列表中可以同时包含不同类型,例如数字和字符串,可能像这样:
12.6 从列表获取元素
建立一个新列表,比如字母表中的字母
可以按元素的索引(index)号从列表获取单个元素。
为什么索引从 0 而不是 1 开始?
二进制计数从 0 开始。所以,为了最高效地使用比特位而没有任何浪费,内存位置和列表索引也都从 0 开始。
12.7 列表“分片”
还可以使用索引从列表一次获取多个元素。这叫做列表分片(slicing)。
分片简写
使用分片时可以采用一些简写形式。
应该记得吧?我说过分片就是建立原列表的副本。所以 letters[:] 会建立整个列表的副本。如果你想对列表做些修改,但是同时还想保持原来的列表不做任何改变,使用这种分片就会很方便。
12.8 修改元素
12.9 向列表增加元素的其他方法
append() 和 extend() 的区别
insert() 的工作与 append() 相同,只不过你可以告诉它在哪里放入新的元素。append() 总是把新元素放在列表末尾。
12.10 从列表删除元素
12.11 搜索列表
列表中有多个元素时,怎么查找这些元素呢?对列表通常有两种处理:
- 查找元素是否在列表中
- 查找元素在列表中的哪个位置(元素的索引)