news 2026/10/6 16:11:50

python五大数据容器切片 基础内容

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
python五大数据容器切片 基础内容

python五大数据容器 | 切片@TOC

在啃Python五大数据容器的时候,我发现切片算是新手最容易混淆的知识点之一。很多同学刚学会下标取值,一碰到切片的起始、终止、步长就乱了,尤其反向切片很容易踩空。
切片本质上是有序容器专属的截取工具,能快速提取一段子序列。
重要内容:
✅ 可以切片:字符串str、列表list、元组tuple(有顺序,支持下标访问)
❌ 不能切片:集合set、字典dict(无序结构,没有下标,直接写切片会抛出异常)
核心口诀:切片截取遵循左闭右开规则,起始位置包含在内,结束位置不取。

  1. 切片基础语法
    (1). 语法
    容器[起始下标 : 结束下标 : 步长]
    起始下标:从哪个位置开始截取,包含这个位置;省略默认从头开始
    结束下标:到哪个位置停止,不包含这个位置;省略默认到末尾
    步长:取元素的间隔,正数从左往右取;负数从右往左取;省略默认步长=1
    重点坑:左闭右开!结束下标的元素不会被拿到。
    示例1:正向切片
my_list=[10,20,30,40,50,60]# 取下标1到4(不包含4)re=my_list[1:4]print(re)

结果展示

[20,30,40]

解释:下标1=20,下标2=30,下标3=40;下标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]
  1. 步长的作用(高频考点)
    步长代表每次下标增加多少
    步长=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. 负数下标切片
    负数下标代表从倒数位置开始数
    -1 最后一个元素,-2倒数第二个
my_tuple=(1,2,3,4,5,6)print(my_tuple[-3:-1])# 倒数第3位到倒数第1位(不含倒数第1)

结果展示

(4,5)
  1. 不同容器切片对比
# 字符串切片s="python"print(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]

共同点:切片之后,都会生成一份新的数据,不会修改原容器。

  1. 常见踩坑总结(自己学习踩过的坑)
    牢记左闭右开![0:3]只会取下标0、1、2这3个元素,下标3不取;
    集合、字典不支持切片语法,直接写会报错;
    [::-1]反转是生成新序列,原变量本身不会被修改;
    切片下标超出范围不会触发下标越界报错,只会返回空;但单独索引lst[10]越界会直接报错。
list=[1,2,3]print(list[10:])# [] 不会报错# lst[10] 直接索引会报IndexError

6.小结
切片语法:[起始:终止:步长],遵循左闭右开
只有有序容器(字符串、列表、元组)支持切片
步长正负决定读取方向;[::-1]可以快速反转序列
切片下标越界不会抛出异常,超出范围返回空序列

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/6 16:11:49

字符设备驱动(一)

字符设备驱动(一)目录前言我们前两天提到了模块的编写,知道了模块是我们驱动代码的承载物,那么设备又是什么东西呢,顾名思义,它是我们在内核注册的对于硬件的一种抽象,如果把模块比作流水线&…

作者头像 李华
网站建设 2026/10/6 16:04:46

证书链不完整修复方法(进阶篇):原理、方案与优化

本文深入探讨证书链不完整修复方法(进阶篇),涵盖背景分析、原理剖析、实战步骤、配置示例、优化建议和避坑指南。随着业务规模增长,证书链不完整修复方法(进阶篇)的重要性日益凸显。无论你是刚入门还是资深…

作者头像 李华
网站建设 2026/10/6 15:44:12

USB转SATA桥接芯片怎么选?ASMedia五款主流型号对比与避坑指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/6 15:44:07

Linux服务器故障排查:从ping通到SSH不通的分层定位与实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华