Python列表切片通过start:end:step提取子列表,如nums[2:6]得[2,3,4,5],支持省略参数与负索引,步长可正负,不修改原列表且越界不报错。

Python列表切片是一种快速提取列表中部分元素的方法,使用非常灵活。它的基本规则是通过指定起始、结束和步长来获取子列表。
切片的基本语法
切片使用方括号 [] 和冒号 : 来定义,格式如下:
list[start:end:step]- start:起始索引(包含),默认为0
- end:结束索引(不包含),默认为列表长度
- step:步长,即每隔几个取一个,默认为1
如果省略某部分,会使用对应默认值。
常见用法示例
假设有一个列表:
立即学习“Python免费学习笔记(深入)”;
nums = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]- nums[2:6] → 取索引2到5的元素:[2, 3, 4, 5]
- nums[:5] → 从开头取到索引4:[0, 1, 2, 3, 4]
- nums[5:] → 从索引5取到末尾:[5, 6, 7, 8, 9]
- nums[::2] → 每隔一个取一个:[0, 2, 4, 6, 8]
- nums[::-1] → 步长为-1,实现反转:[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
- nums[7:2:-1] → 从索引7倒着取到索引3:[7, 6, 5, 4, 3]
负数索引和反向切片
Python支持负数索引,-1表示最后一个元素,-2表示倒数第二个,依此类推。
- nums[-3:] → 取最后三个元素:[7, 8, 9]
- nums[:-2] → 取除最后两个外的所有元素:[0, 1, 2, 3, 4, 5, 6, 7]
- nums[-5:-2] → 从倒数第5个取到倒数第3个:[5, 6, 7]
注意事项
- 切片不会改变原列表,而是返回一个新列表
- 索引超出范围时不会报错,而是尽可能返回有效部分
- 当步长为负时,start应大于end,否则结果为空
- 空切片如 nums[4:4] 返回空列表 []
基本上就这些,掌握好索引方向和步长的关系,切片就很直观了。不复杂但容易忽略细节。











