这节课我们来学习下 Python 中一个非常重要的数据类型:列表。为什么说它非常重要呢?因为在我们的实际开发过程中,列表是一个经常会用到的数据结构,它以占用空间小,浪费内存空间少这一特性而被广泛应用。这一小节我们会学习:
- 列表的常见运算操作
- 列表的常见函数
- 列表的常见方法
1. 什么是列表?
列表是一个有序的序列,列表中所有的元素放在 [] 中间,并用逗号分开,例如:
- [1, 2, 3],一个包含 3 个整数的列表
- [‘a’, ‘b’, ‘c’],一个包含 3 个字符串的列表
2. 常见运算操作
本节介绍对列表的最常见的几种运算操作,包括:
2.1 运算符
使用运算符 连接两个列表,示例如下:
代码语言:javascript复制>>> [1, 2] [3, 4][1, 2, 3, 4]>>> [1, 2] [3, 4] [5, 6][1, 2, 3, 4, 5, 6]
- 在第 1 行,使用运算符 连接两个列表
- 在第 3 行,使用运算符 连接多个列表
2.2 运算符 *
使用运算符 * 将列表的元素重复,示例如下:
代码语言:javascript复制>>> [1, 2] * 2[1, 2, 1, 2]>>> [1, 2] * 3[1, 2, 1, 2, 1, 2]
- 在第 1 行,使用运算符 * 将字符串重复两次
- 在第 3 行,使用运算符 * 将字符串重复三次
2.4 索引 []
通过索引 [] 获取列表中指定位置的元素,示例如下:
代码语言:javascript复制>>> x = ['www', '5axxw', 'com']>>> x[0]'www'>>> x[1]'5axxw'>>> x[2]'com'
- 在第 2 行,获取列表 x 的第 0 个元素 ‘www’
- 在第 4 行,获取列表 x 的第 1 个元素 ‘5axxw’
- 在第 6 行,获取列表 x 的第 2 个元素 ‘com’
Tips:列表的索引也可以从最后一位开始,例如:x[-1] 获取的是列表的最后一个元素。
2.5 索引 [:]
在 Python 中,使用语法 列表[start:end],获取列表 列表 中在 [start, end) 范围的子字符串。注意范围 [start, end) 包含 start,不包含 end。举例如下:
代码语言:javascript复制>>> x = ['www', '5axxw', 'com']>>> x[1]'5axxw'>>> x[2]'com'>>> x[1:3]
['5axxw', 'com']
- 在第 2 行,获取列表 x 的第 1 个元素 ‘5axxw’
- 在第 4 行,获取列表 x 的第 2 个元素 ‘com’
- 在第 6 行,获取列表 x 中从 1 开始、到 3 结束的列表 [‘5axxw’, ‘com’],使用 x[1:3] 表示该范围,注意该范围包括字符串的第 1 个元素、不包括第 3 个元素。
2.6 关键字 in
通过关键字 in 检查列表中是否包含指定元素,示例如下:
代码语言:javascript复制>>> '5axxw' in ['www', '5axxw', 'com']True>>> 'mooc' in ['www', '5axxw', 'com']False
- 在第 1 行,检测字符串 ‘5axxw’ 在列表中
- 在第 3 行,检测字符串 ‘mooc’ 不在列表中
3. 常见函数
3.1 len(列表) 函数
使用函数 len 获取列表的长度,示例如下:
代码语言:javascript复制>>> len([1, 2, 3])3>>> len([1, 2, 3, 4])4
Tips:len() 函数不只是可以获取列表的长度,也可以获取像集合、元组等等其他可迭代对象的长度。
3.2 max(列表) 函数
使用函数 max 获取列表中最大的元素,示例如下:
代码语言:javascript复制>>> max([1, 2])2>>> max([1, 3, 2])3
3.3 min(列表) 函数
使用函数 min 获取列表中最小的元素,示例如下:
代码语言:javascript复制>>> min([1, 2])1>>> min([1, 3, 2])1
4. 常见方法
4.1 append(item) 方法
append(item) 方法向列表中新增一个元素 item,示例如下:
代码语言:javascript复制>>> x = [1, 2, 3]>>> x.append(4)>>> x
[1, 2, 3, 4]
- 在第 2 行,使用 append 方法向列表中新增一个元素 4
- 在第 4 行,显示列表中已经增加了一个元素
Tips:append() 方法默认将元素添加到列表的最后一个位置。
4.2 insert(index, item) 方法
insert(index, item) 方法用于将元素 item 插入列表的指定位置,示例如下:
代码语言:javascript复制>>> x = ['www', 'com']>>> x.insert(1, '5axxw')>>> x
['www', '5axxw', 'com']>>> x.insert(0, 'http')>>> x
['http', 'www', '5axxw', 'com']>>> x.insert(4, 'end')>>> x
['http', 'www', '5axxw', 'com', 'end']
- 在第 2 行,将元素 ‘5axxw’ 插入到列表的位置为 1 的地方
- 在第 5 行,将元素 ‘http’ 插入到列表的位置为 0 的地方,即插入到队列的首部
- 在第 8 行,将元素 ‘end’ 插入到列表的位置为 4 的地方,即插入到队列的尾部
4.3 pop() 方法
pop() 方法从列表的尾部取走一个元素,示例如下:
代码语言:javascript复制>>> x = ['www', '5axxw', 'com']>>> item = x.pop()>>> item'com'>>> x
['www', '5axxw']
- 在第 2 行,从列表的尾部取走一个元素,将该元素保存在变量 item 中
- 在第 3 行,打印 item
- 在第 4 行,显示 item 为列表的尾部最后一个元素
- 在第 5 行,打印取走最后一个元素后的列表
- 在第 6 行,显示 x 中已经少了一个元素
4.4 remove(item) 方法
remove(item) 方法从列表中删除指定元素 item,示例如下:
代码语言:javascript复制>>> x = ['www', '5axxw', 'com']>>> x.remove('5axxw')>>> x
['www', 'com']
4.5 index(item) 方法
index(item) 方法在列表中查找指定元素 item,如果找到元素 item,则返回元素 item 的索引;如果找不到,则抛出异常。示例如下:
代码语言:javascript复制>>> x = ['www', '5axxw', 'com']>>> x.index('5axxw')1>>> x.index('mooc')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>ValueError: 'mooc' is not in list
- 在第 2 行,在列表中使用 index 方法查找元素 ‘5axxw’
- 在第 3 行,显示元素 ‘5axxw’ 在列表中的索引是 1
- 在第 4 行,在列表中使用 index 方法查找元素 ‘mooc’
- 在第 5 行,因为列表中没有包含元素 ‘mooc’,显示错误 “ValueError: ‘mooc’ is not in list”
4.6 reverse() 方法
reverse() 方法将列表中元素倒序排列,示例如下:
代码语言:javascript复制>>> x = ['www', '5axxw', 'com']>>> x.reverse()>>> x
['com', '5axxw', 'www']
- 在第 2 行,使用 reverse 方法将将列表中元素倒序排列
- 在第 4 行,显示列表的元素序列已经颠倒了
4.7 sort() 方法
sort() 方法对列表中元素进行排序,示例如下:
- 按递增排序
缺省情况下,sort 方法对列表中的元素按递增进行排序,示例如下:
代码语言:javascript复制>>> x = [1, 3, 2]>>> x.sort()
[1, 2, 3]
- 按递减排序
通过使用选项 reverse = True 让列表按递减排序,示例如下:
代码语言:javascript复制>>> x = [1, 3, 2]>>> x.sort(reverse = True)[3, 2, 1]
5.小结
好了,这节课关于列表的学习到这里就要告一段落了。我们来总结一下这节课主要学习了那些内容。这节课我们主要学习了列表的常见运算操作、函数、方法等等。运算操作中常见的有 和 * 这两种,但是最重要的还是索引操作,这一点非常的重要,一定要掌握好。常见的函数和方法等都是 Python 内置的 API ,我们需要多多使用,毕竟熟能生巧不是吗?