列表
列表(list)是 Python 中最常用的数据结构之一,它是一个有序、可变的集合,可以包含不同类型的元素。
创建列表
访问列表元素
修改列表
添加元素
删除元素
列表操作
列表推导式
列表与函数
深拷贝与浅拷贝
浅拷贝
浅拷贝只复制列表的引用,不复制嵌套对象。
- 解释:浅拷贝后,修改嵌套对象会影响原列表。
- 适用场景:适用于不需要独立嵌套对象的场景。
深拷贝
深拷贝会递归复制所有嵌套对象。
- 解释:深拷贝后,嵌套对象与原列表完全独立。
- 适用场景:适用于需要完全独立副本的场景。
列表的性能优化
时间复杂度
| 操作 | 时间复杂度 |
|---|---|
索引访问 (list[i]) | O(1) |
追加 (append) | O(1) |
插入 (insert) | O(n) |
删除 (remove) | O(n) |
| 切片 | O(k) |
- 解释:了解时间复杂度有助于优化代码性能。
- 适用场景:适用于需要高效操作的场景。
高效使用列表
- 预分配空间:使用
[None] * size预分配列表空间。 - 避免频繁插入/删除:考虑使用
collections.deque。
列表与其他数据结构的对比
| 特性 | 列表 (list) | 元组 (tuple) | 集合 (set) |
|---|---|---|---|
| 可变性 | 可变 | 不可变 | 可变 |
| 有序性 | 有序 | 有序 | 无序 |
| 重复元素 | 允许 | 允许 | 不允许 |
| 适用场景 | 动态数据 | 固定数据 | 去重/查找 |
实践练习
练习1:列表去重
练习2:矩阵转置
练习3:列表分组
小结
本章介绍了 Python 列表的核心知识:
- 创建和访问:索引、切片操作
- 修改列表:添加、删除、合并等操作
- 列表操作:排序、反转、查找等
- 列表推导式:简洁创建列表的方式
- 列表与函数:作为参数和返回值
列表是 Python 中最灵活的数据结构之一,掌握它的使用对编程至关重要。