本文最后更新于 258 天前,其中的信息可能已经过时,如有错误请发送邮件到wuxianglongblog@163.com
列表
列表的生成
用一对中括号[]
生成列表:
a = [1, 2.0, 'hello']
type(a)
list
空列表的产生:
empty_list = []
empty_list
[]
空列表也可以这样产生:
list()
[]
基本操作
长度:
len(a)
3
加法与数乘:
a * 2
[1, 2.0, 'hello', 1, 2.0, 'hello']
a + a
[1, 2.0, 'hello', 1, 2.0, 'hello']
索引和切片:
a = [10, 11, 12, 13, 14]
a[0]
10
a[-1]
14
a[2:-1]
[12, 13]
用索引修改:
a
[10, 11, 12, 13, 14]
a[0] = 100
a
[100, 11, 12, 13, 14]
用切片修改:
a = [11, 12, 13, 14, 15]
a[1:3] = [1, 2]
a
[11, 1, 2, 14, 15]
对于连续的切片(即步长为 1 ),Python采用的是整段替换的方法,两者的元素个数并不需要相同:
a[1:3] = [1, 2, 3, 4, 5]
a
[11, 1, 2, 3, 4, 5, 14, 15]
对于不连续(间隔step不为1)的片段进行修改时,两者的元素数目必须一致:
a = [10, 11, 12, 13, 14]
a[::2] = [1, 2, 3]
a
[1, 11, 2, 13, 3]
删除元素
关键字 del
可以删除元素:
a = [1002, 'a', 'b', 'c']
del a[0]
a
['a', 'b', 'c']
a = [1002, 'a', 'b', 'c']
del a[1:]
a
[1002]
a = ['a', 1, 'b', 2, 'c']
del a[::2]
a
[1, 2]
测试从属关系
关键词in
测试某个元素是否在列表中:
a = [10, 11, 12, 13, 14]
10 in a
True
10 not in a
False
字符串也支持:
s = 'hello world'
'he' in s
True
'world' not in s
False
列表中可以包含各种对象,甚至可以包含列表:
a = [10, 'eleven', [12, 13]]
a[2]
[12, 13]
a[2][1]
13
不改变自身的方法
a = [11, 12, 13, 11, 12]
.count()
方法得到某个特定元素出现的次数:
a.count(11)
2
.index()
方法得到某个元素第一次出现的索引:
a.index(11)
0
改变自身的方法
.append()
方法添加单个元素:
a = [10, 11, 12]
a.append(11)
a
[10, 11, 12, 11]
只能添加为单个元素:
a.append([1, 2])
a
[10, 11, 12, 11, [1, 2]]
.extend()
方法一次添加多个值:
a = [10, 11, 12]
a.extend([1, 2])
a
[10, 11, 12, 1, 2]
.insert()
方法在指定索引位置处插入一个元素:
a = [10, 11, 12, 13, 11]
a.insert(2, 'a')
a[2]
'a'
a
[10, 11, 'a', 12, 13, 11]
.sort()
方法排序:
a = [10, 1, 11, 13, 11, 2]
a.sort()
a
[1, 2, 10, 11, 11, 13]
.reverse()
方法逆序:
a.reverse()
a
[13, 11, 11, 10, 2, 1]
如果不想改变原来的列表,可以用函数sorted()
和reversed()
替代方法:
a = [10, 1, 11, 13, 11, 2]
sorted(a)
[1, 2, 10, 11, 11, 13]
reversed(a)
reversed()
返回的这个不是一个列表,可以使用list()
函数转成列表:
list(reversed(a))
[2, 11, 13, 11, 1, 10]