上一篇
Python列表切片规则详解 - 从入门到精通
- Python
- 2025-07-20
- 1424
Python列表切片完全指南
掌握列表切片的核心规则、语法和实用技巧
什么是列表切片?
列表切片是Python中操作列表的强大功能,它允许您从一个列表中提取部分元素来创建新的子列表。
切片的基本语法:list[start:stop:step]
- start: 起始索引(包含)
- stop: 结束索引(不包含)
- step: 步长(可选,默认为1)
切片基础示例
创建示例列表
numbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] print("原始列表:", numbers)
1. 基本切片
# 获取索引2到5的元素 slice1 = numbers[2:6] print("numbers[2:6] →", slice1) # 输出: [2, 3, 4, 5] # 获取前三个元素 slice2 = numbers[:3] print("numbers[:3] →", slice2) # 输出: [0, 1, 2] # 获取从索引5到末尾 slice3 = numbers[5:] print("numbers[5:] →", slice3) # 输出: [5, 6, 7, 8, 9]
2. 使用步长
# 每两个元素取一个 slice4 = numbers[::2] print("numbers[::2] →", slice4) # 输出: [0, 2, 4, 6, 8] # 从索引1开始,每三个元素取一个 slice5 = numbers[1::3] print("numbers[1::3] →", slice5) # 输出: [1, 4, 7] # 反向步长(从后向前) slice6 = numbers[::-1] print("numbers[::-1] →", slice6) # 输出: [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
高级切片技巧
3. 负索引切片
# 获取最后三个元素 slice7 = numbers[-3:] print("numbers[-3:] →", slice7) # 输出: [7, 8, 9] # 从倒数第五个到倒数第二个 slice8 = numbers[-5:-1] print("numbers[-5:-1] →", slice8) # 输出: [5, 6, 7, 8] # 组合使用正负索引 slice9 = numbers[2:-2] print("numbers[2:-2] →", slice9) # 输出: [2, 3, 4, 5, 6, 7]
4. 切片修改列表
# 修改切片部分的值 numbers[3:6] = [30, 40, 50] print("修改后:", numbers) # [0, 1, 2, 30, 40, 50, 6, 7, 8, 9] # 插入元素 numbers[2:2] = [100, 200] print("插入后:", numbers) # [0, 1, 100, 200, 2, 30, 40, 50, 6, 7, 8, 9] # 删除元素 numbers[4:7] = [] print("删除后:", numbers) # [0, 1, 100, 200, 50, 6, 7, 8, 9]
切片规则总结
语法 | 描述 | 示例 |
---|---|---|
list[start:stop] | 从start到stop-1的元素 | [1,2,3,4][1:3] → [2,3] |
list[:stop] | 从开头到stop-1的元素 | [1,2,3,4][:2] → [1,2] |
list[start:] | 从start到末尾的元素 | [1,2,3,4][2:] → [3,4] |
list[::step] | 以step为步长获取元素 | [1,2,3,4][::2] → [1,3] |
list[::-1] | 反转列表 | [1,2,3,4][::-1] → [4,3,2,1] |
切片使用注意事项
- 切片操作返回的是新列表,原始列表不会被修改(除非显式赋值)
- 当索引超出范围时,切片不会报错,而是尽可能返回有效范围内的元素
- 步长不能为0,否则会引发ValueError
- 负步长表示从右向左提取元素
- 切片操作也适用于其他序列类型,如字符串、元组等
本文由NiuZhongJian于2025-07-20发表在吾爱品聚,如有疑问,请联系我们。
本文链接:https://www.521pj.cn/20256064.html
发表评论