4.3 列表
列表是元素按顺序排列构成的有序的集合,其中的每个元素都有各自的位置编号,方便索引操作。列表非常好的优势是,里面的元素可以是各种类型共存的,可以是数字、字符串甚至还可以是列表、元组、字典等。列表中的元素是可以被修改的。
4.3.1 直接创建列表
可以用方括号直接创建元组,括号里的元素用逗号隔开。当[ ]内不存在任何元素时,便创建了一个空列表。
【例4-5】用方括号创建列表。
程序运行结果如图4-6所示。
图4-6 创建列表运行程序
4.3.2 用list()函数创建列表
其实,list()函数实质是把目标对象转为列表的类型。同直接创建列表的方式很像,这里是在list()函数后面用圆括号将目标对象转为列表类型。可以在list的圆括号中放入建立列表需要的元素,这些元素放入时必须是一个元组对象或者是一个列表对象,不可以直接将元素列进list()函数中的括号里,也可以将某一变量放进去,list()函数会帮助我们自动将元素转为列表的形式。同样,如果没有传入任何元素,将创建一个空的列表。
【例4-6】用list()函数创建列表。
程序运行结果如图4-7所示。
图4-7 创建列表运行程序
4.3.3 列表元素提取
列表中的元素都是有位置的,因此常用的元素提取方法有索引提取和列表切片操作提取。每一次通过位置进行索引访问都能得到列表中唯一对应的元素,使用切片操作则会得到一段包含对应元素的列表。
(1)索引提取元素:利用序列的索引进行元素提取的方法。通过元素的位置,提取元素,在列表对象后面使用方括号包含索引数。例如,list[0],list[1],list[2],…注意不能超过列表总长度。
如果想要从列表尾部快速索引元素,则可以使用负数,例如:list[-1],list[-2],list[-3],…
【例4-7】索引提取元素。
程序运行结果如图4-8所示。
图4-8 索引提取元素运行程序
(2)切片提取元素:使用切片提取列表的某段元素时,无须考虑超出索引范围的问题。需要注意的是,列表的切片是一个元组类型。
【例4-8】切片提取元素。
程序运行结果如图4-9所示。
图4-9 切片提取元素运行程序
(3)列表反转:使用切片时,list[::-1]这个操作可以得到list列表的反转列表。
【例4-9】列表反转。
程序运行结果如图4-10所示。
图4-10 列表反转运行程序
4.3.4 操作列表的常用函数
列表在Python中是可变的数据结构,因此Python提供很多方便的函数帮助用户对列表的元素进行操作,常见的操作有元素的增删改查等。
1. 增添元素
append()函数将在列表尾部传入一个元素:list.append(1)。
extend()函数可以将列表1和列表2拼接在一起:list1.extend(list2)。
insert()函数可以在列表中的指定位置插入一个元素:list.insert(位置,元素)。
注意:使用append()和insert()时,一次只能添加一个元素;使用extend()时是将列表拼接在另一个列表尾部。
【例4-10】添加元素。
程序运行结果如图4-11所示。
图4-11 添加元素运行程序
2. 删除元素
del()函数将列表中提取出的元素删除(用索引提取):del list[0]。
pop()函数根据索引获取该元素并删除:list.pop(0)。
remove()函数将指定元素删除:list.remove(1)。
注意:使用pop()函数时,若不指定元素位置,将默认使用索引-1;remove()删除指定元素时,只会将第一次出现的该元素删除。
【例4-11】删除元素。
程序运行结果如图4-12所示。
图4-12 删除元素运行程序
3. 修改元素
根据列表元素可变的特性,可以直接提取元素并进行重新赋值,从而完成修改元素的操作。提取元素根据元素地址索引进行。
4. copy方法
有时需要在保存原来的列表数据的同时对这个列表进行变更操作,此时会用到copy方法。copy方法能够创建一个完全一样的列表,虽然意思上是一样的列表,但只是元素一样,copy后的一个列表已经是一个新的列表。
【例4-12】copy方法。
程序运行结果如图4-13所示。
图4-13 copy方法运行程序
5. index查询
index能够帮助我们快速查找某元素在该列表中的位置。
【例4-13】index查询。
程序运行结果如图4-14所示。
图4-14 index查询运行程序