列表功能强大,并且可以修改列表的内容。我们学习列表的基本操作和列表方法,掌握列表的使用。
一、列表的基本操作
赋值
通过列表的索引标记为特定位置的元素赋值,不能为位置不存在的元素赋值。
>>>x=[1,2,3]
>>>x[2]=4
>>>x
[1,2,4]
删除元素
列表中使用del实现删除操作
>>>cities=['NewYork','ShangHai','Beijing','GuanZhou']
>>>del cities[0]
>>>cities
['ShangHai','Beijing','GuanZhou']
分片赋值
分片赋值功能强大,可以一次为多个元素赋值
>>>city=list('Ganzhou')
>>>city[2:]=list('rr')
>>>city
['G','a','r','r']
可以使用序列将分片替换
>>>city=list('Ganzhou')
>>>city[1:]=list('uanzhou')
>>>city
['G','u','a','n','z','h','o','u']
二、列表方法
append
用于在列表末尾添加新的对象
>>>x.append(4)
>>>x
[1,2,4,4]
count
用于统计某个元素在列表中出现的次数
>>>x.count(4)
>>>2
extend
用于在列表末尾一次性追加另一个序列中的多个值,与连接操作不同的是,extend方法修改了被扩展了的序列。
>>>y=[5,6,7]
>>>x.extend(y)
>>>x
[1,2,4,4,5,6,7]
index
用于在列表中找出第一个匹配项的索引位置。
>>>x.index(4)
2
insert
用于将对象插入到列表中。
>>>x.insert(2,3)
>>>x
[1,2,3,4,4,5,6,7]
pop
用于移除列表中的一个元素,默认为最后一个,并返回该元素的值。
>>>x.pop()
7
>>>x.pop(0)
1
remove
用于移除列表中某个值的第一个匹配项,且没有返回值。
>>>x
[2,3,4,4,5,6]
>>>x.remove(4)
>>>x
[2,3,4,5,6]
reverse
用于将列表中的值反向存放。
>>>x.reverse()
>>>x
[6,5,4,3,2]
sort
用于在原位置上对列表进行排序,并不是简单的返回一个列表的副本。
>>>x.sort()
>>>x
[2,3,4,5,6]
需要注意的是,当需要排序好的列表副本,又需要原来的列表时,可先将x复制给y,对y进行排序。而且不能简单的把x赋值给y,而是调用x[:]进行复制,若令y=x,则二者指向同一个列表。
>>>y=x[:]
>>>y.sort()
>>>x
[6,5,4,3,2]
>>>y
[2,3,4,5,6]
三、高级排序
Python允许自定义排序方式对列表元素进行排序。可以通过compare(x,y)函数自定义比较函数,x<y是返回负数,x>y时返回正数,x=y时返回0。
>>>x=[4,1,3,2]
>>>x.sort(cmp)
>>>x
[1,2,3,4]
sort方法还有另外两个可选参数:key与reverse。key为每个元素创建一个键,所有元素根据键来进行排序。如根据元素长度排序:
>>>city=['Beijing','shanghai','ganzhou']
>>>x.sort(key=len)
>>>city
['ganzhou','Beijing','shanghai']
reverse指定列表是否进行反向排序。