python五大数据容器切片 基础内容 python五大数据容器 | 切片TOC在啃Python五大数据容器的时候我发现切片算是新手最容易混淆的知识点之一。很多同学刚学会下标取值一碰到切片的起始、终止、步长就乱了尤其反向切片很容易踩空。切片本质上是有序容器专属的截取工具能快速提取一段子序列。重要内容✅ 可以切片字符串str、列表list、元组tuple有顺序支持下标访问❌ 不能切片集合set、字典dict无序结构没有下标直接写切片会抛出异常核心口诀切片截取遵循左闭右开规则起始位置包含在内结束位置不取。切片基础语法(1). 语法容器[起始下标 : 结束下标 : 步长]起始下标从哪个位置开始截取包含这个位置省略默认从头开始结束下标到哪个位置停止不包含这个位置省略默认到末尾步长取元素的间隔正数从左往右取负数从右往左取省略默认步长1重点坑左闭右开结束下标的元素不会被拿到。示例1正向切片my_list[10,20,30,40,50,60]# 取下标1到4不包含4remy_list[1:4]print(re)结果展示[20,30,40]解释下标120下标230下标340下标4是50不取。(2).省略参数my_list[10,20,30,40,50,60]print(my_list[:3])# 从头取到下标3不含3 → [10,20,30]print(my_list[2:])# 下标2取到末尾 → [30,40,50,60]print(my_list[:])# 全部复制得到新列表 → [10,20,30,40,50,60]结果展示[10,20,30][30,40,50,60][10,20,30,40,50,60]步长的作用高频考点步长代表每次下标增加多少步长2隔1个取1个步长-1反向截取反转容器my_list[10,20,30,40,50,60]print(my_list[::2])# 从头到尾步长2 → [10, 30, 50]print(my_list[::-1])# 从头到尾步长-1反转列表 → [60, 50, 40, 30, 20, 10]结果展示[10,30,50][60,50,40,30,20,10]⚠️易错点步长正负要和起止方向匹配起始在左边步长为负数 → 取不到任何元素返回空。负数下标切片负数下标代表从倒数位置开始数-1 最后一个元素-2倒数第二个my_tuple(1,2,3,4,5,6)print(my_tuple[-3:-1])# 倒数第3位到倒数第1位不含倒数第1结果展示(4,5)不同容器切片对比# 字符串切片spythonprint(s[1:4])# yth# 元组切片t(11,22,33,44)print(t[1:])# (22,33,44)# 列表切片list[1,3,5,7]print(list[::2])# [1,5]结果展示yth(22,33,44)[1,5]共同点切片之后都会生成一份新的数据不会修改原容器。常见踩坑总结自己学习踩过的坑牢记左闭右开[0:3]只会取下标0、1、2这3个元素下标3不取集合、字典不支持切片语法直接写会报错[::-1]反转是生成新序列原变量本身不会被修改切片下标超出范围不会触发下标越界报错只会返回空但单独索引lst[10]越界会直接报错。list[1,2,3]print(list[10:])# [] 不会报错# lst[10] 直接索引会报IndexError6.小结切片语法[起始:终止:步长]遵循左闭右开只有有序容器字符串、列表、元组支持切片步长正负决定读取方向[::-1]可以快速反转序列切片下标越界不会抛出异常超出范围返回空序列