列表
列表的基本操作和方法。
list
因为不能像修改列表一样修改字符串,有些情况需要字符串来创建列表。
1 | res = list('Hello') |
输出:['H', 'e', 'l', 'l', 'o']
序列的运算:
运算名 | 运算符 | 说明 |
---|---|---|
索引 | [] |
获取序列中的某个元素 |
连接 | + |
将序列连接在一起 |
重复 | * |
重复 N 次连接 |
成员 | in |
序列中是否有某元素 |
长度 | len |
序列元素个数 |
切片 | [:] |
取出序列的一部分 |
基本的列表操作
- 修改列表:给元素赋值
1 | res = [1, 2, 3, 4] |
输出:
1 | [1, 2, 3, 4] |
- 删除元素
使用 del
语句可以实现列表中元素删除。
1 | res = [1, 2, 3, 4] |
输出:
1 | [1, 2, 3, 4] |
- 给切片赋值
- 赋值
1 | res = list('akashi') |
输出:
1 | ['a', 'k', 'a', 's', 'h', 'i'] |
- 替换序列,改变序列长度
1 | res = list('akashi') |
输出:
1 | ['a', 'k', 'a', 's', 'h', 'i'] |
- 不替换原有元素的情况下插入元素
1 | res = [1, 5] |
输出:
1 | [1, 5] |
- 删除切片
1 | res = [1, 2, 3, 4, 5] |
输出:
1 | [1, 2, 3, 4, 5] |
- 指定步长
[start:stop:step]
注:start
缺省默认从头开始,stop
缺省默认至列表结尾,step
缺省默认为 1
1 | res = [1, 2, 3, 4, 5] |
输出:
1 | [1, 2, 3, 4, 5] |
- 序列反转
1 | res = [1, 2, 3, 4, 5] |
输出:
1 | [5, 4, 3, 2, 1] |
列表方法
方法名 | 用法 | 说明 |
---|---|---|
append |
alist.append(item) |
在列表末尾添加一个新元素 |
clear |
alist.clear() |
就地清空列表的内容 |
copy |
alist.copy() |
复制列表 |
count |
alist.count(item) |
返回 item 在列表中出现的次数 |
extend |
alist.extend(otherlist) |
同时将多个值附加到列表末尾 |
index |
alist.index(item) |
返回 item 第一次出现时的下标 |
insert |
alist.insert(i, item) |
在列表的第 i 个位置插入一个元素 |
pop |
alist.pop() |
删除并返回列表中最后一个元素 |
pop |
alist.pop(i) |
删除并返回列表中第 i 个位置的元素 |
del |
del alist[i] |
删除列表中第 i 个位置的元素 |
remove |
alist.remove(item) |
从列表中移除第一次出现的 item |
reverse |
alist.reverse() |
将列表元素倒序排列 |
sort |
alist.sort() |
将列表元素排序 |
append()
用于将一个对象附加到列表末尾
1 | lst = [1, 2, 3] |
输出:
1 | [1, 2, 3, 4] |
clear()
就地清空列表的内容
1 | lst = [1, 2, 3] |
输出:
1 | [] |
copy()
复制列表
1 | a = [1, 2, 3] |
输出:
1 | [1, 2, 3] |
等效于
1 | a = [1, 2, 3] |
常规复制只是将另一个名称关联到了列表,本质上还是同一个列表。
count()
计算指定的元素在列表中出现的次数
1 | lst = [1, 1, 2, 3] |
输出: 2
extend()
同时将多个值附加到列表末尾
1 | a = [1, 2, 3] |
输出:
1 | [1, 2, 3, 4, 5, 6] |
index()
在列表中查找指定的值第一次出现的索引
1 | name = ['akashi', 'asuka', 'asuka'] |
输出: 1
insert()
用于将一个对象插入列表
1 | lst = [1, 2, 3, 5] |
输出:
1 | [1, 2, 3, 4, 5] |
pop()
从列表中删除一个元素(末尾为最后一个元素),并返回这一个元素
1 | lst = [1, 2, 3, 4] |
输出: 4
注:push
和 pop
是普遍接受的两种栈操作,但是 Python
没有提供 push
,可以使用 append
代替。
remove()
删除第一个为指定值的元素
1 | lst = [1, 1, 2, 3] |
输出:
1 | [1, 2, 3] |
reverse()
按相反的顺序排列列表中的元素
1 | lst = [1, 2, 3] |
输出:
1 | [3, 2, 1] |
sort()
用于对列表就地排序
1 | lst = [4, 6, 2, 1, 3, 5] |
输出:
1 | [1, 2, 3, 4, 5, 6] |
因为是就地排序,修改了列表而不返回任何的值,如果像下面这样,就是得到一个 None
1 | x = [2, 1, 4, 3] |
输出: None
想要获取排序后的列表的副本,可以使用函数 sorted()
1 | x = [2, 1, 4, 3] |
- 高级排序
方法 sort()
接受两个可选参数:key
和 reverse
参数 key
可以设置为一个用于排序的函数(可以是自定义函数):
1 | name = ['akashi', 'asuka', 'gakki'] |
参数 reverse
指定为 True
或 False
,指出是否按相反顺序排序。
元组:不可修改的序列
元组也是序列,与列表的差别在于不可修改。
使用逗号分隔,自动创建一个元组
- 创建
1 | 1, 2, 3 |
- 表示一个值的元组
1 | 4, |
tuple
1 | res = tuple('123') |
输出:
1 | ('1', '2', '3') |
元组操作与列表大体一致,也有切片
元组用作映射中的键(以及集合的成员),而列表不行。