python切片通过sequence[start:stop:step]从序列提取元素,支持反转、复制、删除等操作,如[::-1]反转列表,[:3]取前三个元素,且切片不越界,适用于列表、字符串和元组。

Python切片是一种灵活且高效的操作方式,用于从序列类型(如列表、字符串、元组)中提取部分元素。它语法简洁,功能强大,掌握好切片技巧能大幅提升代码可读性和运行效率。
基本切片语法
切片的基本格式为:sequence[start:stop:step],其中:
- start:起始索引(包含),默认为0
- stop:结束索引(不包含),默认为序列长度
- step:步长,可正可负,默认为1
例如:
lst = [0, 1, 2, 3, 4, 5]
立即学习“Python免费学习笔记(深入)”;
lst[1:4] # 结果:[1, 2, 3]
lst[:3] # 结果:[0, 1, 2]
lst[3:] # 结果:[3, 4, 5]
lst[::2] # 结果:[0, 2, 4]
lst[::-1] # 反转列表:[5, 4, 3, 2, 1, 0]
常见使用技巧
切片不只是取子集,还能用于多种实用场景:
- 反转序列:用 [::-1] 快速反转字符串或列表,比 reversed() 更直接
- 复制序列:lst[:] 可创建浅拷贝,避免修改原列表
- 删除连续元素:对可变序列(如列表),可通过切片赋值删除,如 lst[1:4] = []
- 批量替换:用切片替换多个元素,如 lst[1:3] = [9, 8]
字符串与元组中的切片应用
切片同样适用于不可变类型:
text = “Hello World”
text[6:] # “World”
text[::-1] # “dlroW olleH”
tup = (1, 2, 3, 4)
tup[1:3] # (2, 3)
注意:元组和字符串不可通过切片赋值修改,但可提取新对象。
注意事项与边界情况
使用切片时需留意以下几点:
- 索引超出范围不会报错,而是自动截断到有效范围
- 当 step 为负时,start 应大于 stop,否则返回空序列
- 切片生成的是新对象,但内部元素是原对象的引用(浅拷贝)
比如:lst[-100:100] 会安全地返回整个列表。


