列表是可变的(mutable)
1, list函数
>>> list('hello')
['h', 'e', 'l', 'l', 'o']
2, 基本的列表操作
(1) 改变列表:元素赋值
>>> x=[1,2,3]
>>> x[0]=9
>>> x
[9, 2, 3]
>>> x[9]=0
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IndexError: list assignment index out of range
不能为一个位置不存在的元素进行赋值。
(2) 删除元素
>>> del x[0]
>>> x
[2, 3]
(3) 分片赋值
>>> name=list('abcdef')
>>> name
['a', 'b', 'c', 'd', 'e', 'f']
>>> name[0:2]=list('123')
>>> name
['1', '2', '3', 'c', 'd', 'e', 'f']
3, 列表方法
(1) append方法用于在列表末尾追加新的对象。
>>> age=[1,2,3]
>>> age.append(7)
>>> age
[1, 2, 3, 7]
(2) count方法统计某个元素在列表中出现的次数。
>>> name
['1', '2', '3', 'c', 'd', 'e', 'f', 3, '3']
>>> name.count('3')
2
(3) extend可以在列表的末尾一次性追加另一个序列中的多个值
>>> a=[1,2,3]
>>> b=[4,5]
>>> a.extend(b)
>>> a
[1, 2, 3, 4, 5]
看起来很像连接操作,两者最主要区别在于,extend方法修改了被扩展的序列(在这个例子中就是a)。而原始的连接操作则不然,它会返回一个全新列表
>>> a=[1,2,3]
>>> b=[4,5]
>>> a+b
[1, 2, 3, 4, 5]
>>> a
[1, 2, 3]
(4) index方法用于从列表中找到某个值第一个匹配项的索引位置。
>>> a
[1, 2, 3]
>>> a.index(1)
0
(5) insert用于将对象插入到列表中
>>> a
[1, 2, 3]
>>> a.insert(2,7)
>>> a
[1, 2, 7, 3]
(6) pop会移除列表中的一个元素,默认是最后一个,并且返回该元素的值
>>> a
[1, 2, 7, 3]
>>> a.pop()
3
>>> a
[1, 2, 7]
假如在pop后面有参数的话,就是要移出该索引的元素
>>> a
[1, 2, 7]
>>> a.pop(1)
2
>>> a
[1, 7]
(7) remove方法用于移除列表中某个值的第一个匹配项:
>>> a=[1,2,3]
>>> a.remove(2)
>>> a
[1, 3]
注意,remove是一个没有返回值的原位置改变方法,它修改了列表却没有返回值,与pop相反。
(8) sort方法用于在原位置对列表进行排序。
>>> a=[9,4,7,1,0]
>>> a.sort()
>>> a
[0, 1, 4, 7, 9]
(9) reverse
>>> a
[0, 1, 4, 7, 9]
>>> a.reverse()
>>> a
[9, 7, 4, 1, 0]
(10) 高级排序,按照特定的方式进行排序,而不是sort默认的方式。