oeasy玩py106 列表_删除_del_索引元素_切片

简介: 本文探讨Python中列表的切片与删除操作,通过del关键字和remove方法对比,演示如何删除列表元素及切片,并结合图示形象展示内存变化。同时探究字符串无法直接删除切片的原因及绕行方案,类比“择菜”过程,生动呈现数据处理逻辑。

列表 - 切片 - slice - 删除

  • 上次研究了 回环文
  • 绕圈读
  • 文字 重叠 反复

  • 这些都是由 列表构成的
  • 列表 还能怎么玩呢?🤔
  • 可以根据切片
  • 删除列表项 吗?🤔

回忆删除

python
  • 进入游乐场
a
a = 1
a
del a
a
  • 删了变量 就 找不到了
  • 删除del
  • 删除的是
  • 变量名字
  • 和具体存储空间之间的绑定关系

  • 可以更明确地演示吗?

网站

a = 1
print(a)
del a
print("hello")
  • 可以一步步观察程序执行的过程

  • 执行过程
  • 对a声明并赋值之后
  • Global Frames
  • 全局程序栈的 帧(frame) 上
  • 就有了 变量a
  • 具体值 为 1
  • del a之后
  • 全局程序栈的 帧(frame) 上
  • 变量a就消失了
  • 列表中 的 列表项 可以删 吗?

删除 列表项

nlist = list(range(5))
nlist
nlist[2]
del nlist[2]
nlist
  • 效果

  • del后的列表 还在 原来的内存地址 吗?

确认id

  • 使用id函数 观察地址
id(nlist)
del nlist[2]
id(nlist)
  • nlist 还是原来的 地址
  • 但 里面的列表项
  • 被删(del)了

  • list类 的 remove方法
  • 也能 删除
  • 两者有什么区别吗?

del 和 remove

  • 建立字符列表clist
clist = list("oeasy")
clist
clist.remove("y")
clist
del clist[2]
clist
  • 两者都可以删除

remove del
删除依据 具体列表项 索引序号
类型 列表类方法 关键字
删除范围 某个列表项 切片范围
  • 怎么删除 切片 呢?

删除过程

  • 建立数字列表nlist
nlist = list(range(5))
nlist
nlist[1:3]
del nlist[1:3]
nlist
  • 删除其中的切片
  • nlist[1:3]

  • 就像 切鱼一样
  • 把 中段切掉
  • 首尾 对接

鱼

  • 吃鱼看性格
  • 第一筷子 选
  • 月牙肉
  • 鱼唇

  • 这些部分 最好吃
  • 显示出 从小受宠
  • 可能 自我中心
  • 我们来拾掇拾掇鱼

拾掇鱼

  • 一条鱼切成三段
fish = ["head", "body", "tail"]
  • 掐头

  • 去尾

不要当间

  • 删除支持步长么?

回忆步长

nlist = list(range(10))
nlist[3:6]
nlist[3:]
nlist[:6]
nlist[::1]
nlist[::2]
nlist[::3]
nlist[1::3]
nlist[2::3]
nlist[3::3]
nlist[3:9:3]
  • 切片效果

步长删除

nlist = list(range(10))
nlist
nlist[2::2]
del nlist[2::2]
nlist
  • 效果

  • del支持 步长

继续

  • 在此基础上 再删除
nlist
nlist[::5]
del nlist[::5]
nlist
  • 结果

  • 字符串可以通过del删除切片吗?

字符串 删除切片

s = "oeasy"
s[1:3]
del s[1:3]
  • 字符串 支持切片
  • 但 不支持切片删除

  • 怎么办呢?

绕道列表

  • 字符串 不支持 del关键字
  • 但是 列表支持
  • 先把 字符串 转化为 列表
s = "oeasy"
clist = list(s)
del clist[1:3]
clist
s = ""
for c in clist:
    s = s + c
print(s)
  • 最后 再把 列表 转化回 字符串
  • 直着 过不去
  • 绕过去

总结🤔

  • 这次研究的是del 删除
  • 可以 删除列表项
  • 也可以 删除切片

  • 就像择菜一样

  • 择出去的菜 搁哪儿 了呢?🤔
  • 下次再说 👋
相关文章
|
8月前
|
人工智能 数据可视化 开发工具
OpenClaw学习指南:OpenClaw云上部署+1600+OpenClaw Skills快速掌握
在AI工具爆炸的2026年,OpenClaw(原Clawdbot、Moltbot)凭借其开放的技能生态成为现象级工具——官方注册表收录3000+社区技能,经严格筛选后的1715+高质量Skills覆盖办公自动化、开发工具、内容创作等全场景。但面对海量技能,不少用户陷入“无从学起、学了就忘”的困境。
1153 3
|
缓存 PHP 芯片
Mac M1芯片brew阿里云源,安装PHP时出的问题解决
安装时有两个文件404没有下载下来,它是回地官方源下载,但安装时名字还是用阿里的名字,所以打不到包,手动到缓存目录里改的。改成安装需要的包的名字。
1597 0
|
对象存储 容器
Typora配置阿里云OSS作为图床上传图片
Typora配置阿里云OSS作为图床上传图片
1360 0
|
7月前
|
存储 Web App开发 人工智能
喂饭级教学:OpenClaw阿里云/本地部署+Obsidian skill 自动化构建可复用知识库
很多人用Obsidian做知识管理时,都会陷入“信息囤积”的困境:微信、网页、文档里的知识点被零散收录,看似形成了知识库,实则只是“从一片海转到一个湖里”,后续检索困难、无法复用,还要手动去重、整理结构,耗费大量时间。而OpenClaw与Obsidian的组合,能完美解决这两个核心痛点——让信息自动流入Obsidian,同时按统一结构归档,实现“收集-整理-复用”全流程自动化。
3018 3
|
12月前
|
索引 Python
Python 列表切片赋值教程:掌握 “移花接木” 式列表修改技巧
本文通过生动的“嫁接”比喻,讲解Python列表切片赋值操作。切片可修改原列表内容,实现头部、尾部或中间元素替换,支持不等长赋值,灵活实现列表结构更新。
586 1
|
12月前
|
索引 Python
098-python列表_切片_slice_开始_结束
本文介绍了Python中列表的切片(slice)操作,通过“前闭后开”原则截取列表片段,支持正负索引、省略端点等用法,并结合生活实例(如切面包、直播切片)帮助理解。切片不改变原列表,返回新列表。
532 4
|
12月前
|
机器学习/深度学习 人工智能 UED
生成式AI:从理解世界到创造世界
生成式AI:从理解世界到创造世界
480 33
|
Ubuntu Linux Shell
Ubuntu GRUB菜单密码重置教程
本文详细介绍了在Ubuntu 16.04系统中通过GRUB菜单找回密码的方法。包括进入GRUB引导菜单、修改内核参数、重置用户密码及完成重启的完整步骤,帮助用户快速恢复系统访问权限。
1213 0
【HarmonyOS】HMRouter使用详解(二)
HMRouter中使用HMRouterMgr的静态方法push()和replace()来实现路由跳转。使用pop()方法来实现页面返回 * push :目标页面不会替换当前页,而是插入页面栈。可以使用pop实现页面的返回操作。 * replace:目标页面会替换当前页,并销毁当前页。这样可以释放当前页的资源,并且无法返回到当前页。 * pop:返回页面栈的上一个页面,skipedLayerNumber 页面返回的层级数量,默认为0,表示返回上一级,1表示跳过一级页面返回
968 8
【HarmonyOS】HMRouter使用详解(二)
|
前端开发 JavaScript Java
编程入门之前端和后端开发
前端开发就是开发网页上的内容展示与用户的交互,一部分后端开发工作就是开发数据访问服务,使前端可以通过后端服务对数据进行增删改查,也就是Crud,对前端用户的请求进行相应。
1410 8