Skip to content

Latest commit

 

History

History
243 lines (162 loc) · 4.6 KB

096-744319-列表_删除_del_索引元素_切片.sy.md

File metadata and controls

243 lines (162 loc) · 4.6 KB
show version enable_checker
step
1.0
true

列表 - 切片 - slice - 删除

回忆

  • 上次 我们研究了列表的 步长step
    • 步长步长 就是 步子有多长
    • 和 range的参数很像
      • 开始值start
      • 结束值stop
      • 步长值step
      • 也是前闭后开
  • 步子可以倒着走
    • 倒着走有什么意思呢?
    • 可以翻转列表
    • 可以逆序切片

图片描述

  • 可以 根据切片
    • 删除 列表项 吗?🤔

删除

图片描述

  • 具体del什么意思呢?

del

图片描述

  • 具体来试试

回忆删除

a = 1
a
del a
a
  • 删除del
    • 删除的是
      • 变量名字
      • 和具体存储空间之间的绑定关系

图片描述

  • 删了变量就找不到了
  • 可以更明确地演示吗?

网站

图片描述

  • 编写好代码
  • 一步步next

执行过程

  • 对a声明并赋值之后

图片描述

  • Global Frames
    • 全局程序栈的帧上
      • 就有了一个变量a
      • 具体值为1

图片描述

  • del a之后
    • 全局程序栈的帧上
      • 变量a就消失了
  • 可以删除列表中的元素吗?

删除列表元素

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

图片描述

  • 确实删除了
    • 指定的索引位置的元素

图片描述

  • 这个列表还是原来的列表吗?

确认id

num_list = list(range(5))
id(num_list)
del num_list[2]
id(num_list)
  • l还是原来的l
    • 内存地址没有变
    • 但是列表项确实删除了

图片描述

  • 现在有两个删除函数了
    • del
    • remove
  • 有什么区别吗?

del 和 remove

del remove
系统的关键字 列表的方法
根据索引 根据具体值
不能设置搜索范围 可以设置搜索范围
可以删除切片 只能删除一个列表项
  • 具体怎么删除切片呢?

删除过程

num_list = list(range(5))
num_list
del num_list[1:3]
num_list
  • 效果

图片描述

  • 删除切片就像切鱼一样
    • 把中段删除了

拾掇鱼

  • 掐头

图片描述

  • 去尾

图片描述

  • 不要当间

图片描述

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

图片描述

  • 这些部分 最好吃

    • 显示出 从小受宠
    • 可能 自我中心
  • 删除支持步长么?

步长删除

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

图片描述

  • del支持切片的步长设置

再删除

num_list
num_list[::5]
del num_list[::5]
num_list
  • 结果

图片描述

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

删除切片

图片描述

  • 不支持
  • 怎么办呢?

绕道列表

图片描述

  • 直着过不去
  • 绕路还是可以到的

总结🤔

  • 这次研究的是del
    • 删除
    • 可以删除列表项
    • 也可以把一段切片择出去
  • 就像择菜一样

图片描述

  • del把不要的 从列表里面 择出去
    • 择出去的 放哪儿了呢?🤔
  • 下次再说 👋