Skip to content

Latest commit

 

History

History
252 lines (167 loc) · 5.08 KB

078-1158644-列表_清空列表_clear.sy.md

File metadata and controls

252 lines (167 loc) · 5.08 KB
show version enable_checker
step
1.0
true

列表 - 类型

回忆

  • 上次了解了 list 列表的操作
    • 追加列表项 append
    • 在列表的结尾处追加元素

图片描述

  • append函数后面
    • 这个clear函数怎么用呢??🤔

查看帮助

  • clear 是清空所有列表中的项目

图片描述

  • clear 也是
    • 成员方法
    • 不能直接调用
      • 前面要有l.
  • 这个.(点)是什么意思来着?

  • 先去查看帮助

图片描述

  • 然后向后翻

具体代码

  • 这两个成员(append和clear)
    • 都是list这个列表类的成员方法
      • member method
  • 通过 实例对象 来调用
    • append
      • name_list.append("o4z")
    • clear
      • name_list.clear()
  • .(点)的意思是里面的
  • append 和 clear 都是 成员方法
    • 都有self 作为第一个参数

图片描述

  • clear怎么用呢?

clear

  • l调用clear方法的结果
    • 就是将l清空

图片描述

  • 谁调用clear方法
    • 就将谁清空
  • 具体谁调用呢?

实例对象

  • l 是

    • list列表类的
      • 实例对象
      • Instance Object
  • 罐子类

    • 是一个抽象的类型

图片描述

  • 上面有
    • 三个罐子类的
    • 实例对象instance object

清空clear

  • clear 是

    • l 这个list列表类的
      • 成员方法
  • 下面的罐子

    • 是罐子类的一个实例对象
      • instant object
    • 可以支持清空方法
      • .clear()

图片描述

  • 什么 是 类 来着?

汽车类

  • 具体的汽车
    • 是隶属于汽车类(car class)的
      • 一个实例对象 汽车乙

图片描述

  • 汽车乙 可以调用自己的成员方法
    • 汽车乙.开门()
    • 汽车乙.加速()
    • 汽车乙.倒车()
    • 汽车乙.clear()
  • 可以直接查看clear的帮助吗?

直接找到

help(list.clear)
  • 可以查到

图片描述

  • clear方法的作用就是

    • 清空列表
  • l.clear()和 l = [ ]

    • 有区别吗?

区别

  • 首先定义 l1、l2是两个列表对象
    • 列表对象l1调用clear函数之后
    • l1、l2都清空了

图片描述

  • 还是这两个列表对象
    • 将空列表[ ] 赋给 l2
    • l1 不会受到影响

图片描述

  • 这应该如何理解呢?

将l2清空

l1 = [1, 2, 3]
l2 = l1
l2.clear()
print(l1, l2)
  • 将l1赋给l2
    • 两个列表对象指向同一地址

图片描述

  • l2 指向l1的地址
    • l2 清空就是l1清空

图片描述

通过id观察

  • 这两个列表对象
    • 地址始终没有变化
    • 一直指向同一个位置

图片描述

  • 所以清空一个
    • 另一个所指向的地址不变
      • 也清空了

将空列表赋给l2

l1 = [1, 2, 3]
l2 = l1
l2 = []
print(l1, l2)
  • 将l1赋给l2
    • 两个列表对象指向同一地址

图片描述

  • 将空列表[]赋给l2
    • l2 地址转变
    • l1 地址没变

图片描述

通过id观察

  • 通过id函数得到列表的地址

图片描述

  • 将空列表赋给l2

    • 让l2指向一个空列表的地址
    • 是一个新地址
  • 空列表地址相等吗?

建立空列表

  • 我建立了两个空列表

图片描述

  • 他们虽然都是空列表
    • 但是是指向不同地址空间的两个空列表
  • 如果我想让两个列表控件指向同一个地址呢?

赋值

  • a = b = [ ]这就话相当于两句话
  1. b = [ ]
  2. a = b

图片描述

  • 当再次给a进行赋值的时候
    • a指向了一个新的地址
    • b还指向原来的地址

总结

  • 这次了解了 list 列表的操作
    • 清空列表 clear
    • clear可以把整个列表清空
    • 就像清空回收站里面的删除文件列表一样

图片描述

  • clear
    • 前面要有l.
    • 这个.(点)的意思是 里面的
  • 可以不清空吗?
  • 想要定点删除可以吗?🤔
  • 下次再说 👋