列表操作
列表切片
切片允许你使用灵活的语法提取列表的部分内容:
numbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
## 基本切片
subset = numbers[2:6] ## [2, 3, 4, 5]
## 带步长的切片
every_second = numbers[::2] ## [0, 2, 4, 6, 8]
## 反转列表
reversed_list = numbers[::-1] ## [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
列表方法
添加元素
fruits = ['apple', 'banana']
## 追加单个元素
fruits.append('cherry') ## ['apple', 'banana', 'cherry']
## 在特定索引处插入
fruits.insert(1, 'grape') ## ['apple', 'grape', 'banana', 'cherry']
## 用另一个列表扩展
more_fruits = ['orange','mango']
fruits.extend(more_fruits)
删除元素
fruits = ['apple', 'banana', 'cherry', 'banana']
## 删除首次出现的元素
fruits.remove('banana') ## ['apple', 'cherry', 'banana']
## 按索引删除
del fruits[1] ## ['apple', 'banana']
## pop 方法(删除并返回)
last_fruit = fruits.pop() ## last_fruit = 'banana'
排序与搜索
numbers = [3, 1, 4, 1, 5, 9, 2, 6]
## 原地排序
numbers.sort() ## [1, 1, 2, 3, 4, 5, 6, 9]
## 反向排序
numbers.sort(reverse=True) ## [9, 6, 5, 4, 3, 2, 1, 1]
## 查找元素的索引
index = numbers.index(5) ## 返回 5 的位置
列表操作技巧
技巧 |
方法 |
示例 |
复制 |
.copy() |
new_list = original_list.copy() |
计数 |
.count() |
occurrences = list.count(element) |
清空 |
.clear() |
list.clear() |
高级操作
## 解包列表
first, *rest = [1, 2, 3, 4, 5]
## first = 1, rest = [2, 3, 4, 5]
## 嵌套列表操作
matrix = [[1, 2], [3, 4], [5, 6]]
flattened = [num for row in matrix for num in row]
## flattened = [1, 2, 3, 4, 5, 6]
列表操作工作流程
graph TD
A[原始列表] --> B{操作目标}
B --> |添加| C[追加/插入]
B --> |删除| D[移除/弹出]
B --> |修改| E[排序/反转]
B --> |转换| F[切片/推导式]
性能考量
- 使用内置方法以提高效率
- 避免重复修改列表
- 选择合适的操作技巧
- 对于复杂转换考虑使用列表推导式
结论
掌握列表操作技巧对于高效的 Python 编程至关重要。LabEx 建议通过练习这些方法来熟练掌握列表操作。