[oeasy]python088_列表_清空列表_clear
列表_清空列表_clear
回忆
- 上次了解了
- append
- 追加

- 还有什么 方法呢?🤔
喊救命
list.
- append之后是?

查看帮助
- 后面是clear
help(list.clear)
- 清空列表中所有列表项

- 只有一个 参数是 self
- self是什么?
self
- self就是自己

- 谁自己?
调用
- 谁调用clear
- 就是谁自己
谁
调用的 clear?
nlist = [0, 1, 2]
nlist.clear()
nlist
类
- nlist 调用
- 所以 self 就是 nlist对象自己

- nlist被清空了
- nlist 是 啥?
喊救命
- 对着 nlist 喊 救命(help)
help(nlist)
- nlist 是一个
- 列表类 的 实例对象

- 什么 是 列表类 呢??
汽车类
- 先回忆 什么是 类?

- 类
- 是一种 抽象的 数据类型
- 比如说 汽车类(car class)
- 这辆吉普车 是
- 隶属于汽车类(car class)的
- 实例对象 this_jeep
- this_jeep 可以调用自己的成员方法
- this_jeep.start_engine()
- this_jeep.accelerate(speed)
- this_jeep.brake()
- this_jeep.turn(direction)
具体代码
- 列表类 就是 一种抽象类型
- 内建的 可变 序列
- builtin mutable sequence
- append 和 clear 都是 list类 的 成员方法
- 都有self 作为第一个参数

- append 和 clear
- 都是 list这个列表类的 成员方法
- member method
- 都是 list这个列表类的 成员方法
- 通过 实例对象 来调用
- append
- name_list.append("o4z")
- clear
- name_list.clear()
- .(点)的意思是
里面的
- append
- 列表 为啥 要清空 ?
清空clear
- disney 发布一个 周边
- 引发 大量人 排队
- 形成列表
- 周边 卖没了
- 后面的人 排队 也买不着了
- 列表 只能 清空 了
people_list.clear()
- clear 是
- 可以清空列表
- 是 list列表类的 成员方法

- 可以有什么实际应用吗?
收银员累加程序

- 我们想做一个收银员的程序
ai辅助

while True:
numbers = []
while True:
num = input("请输入商品价格(输入end停止输入):")
if num == "end":
break
try:
num = float(num)
numbers.append(num)
except ValueError:
print("输入不合法,请输入有效的浮点数或end。")
total = sum(numbers)
print(f"本次输入的数字总和为:{total}")
- 这里面 每次重新 累加
- 先将 空列表 赋给了 numbers
运行结果
- 输入end进行求和
- 输入ctrl+c结束程序

- lst.clear()和 lst = [ ]
- 有区别吗?
区别
- 单个列表 看不出 区别
- 两个列表 就有区别了
l1 = [0, 1, 2]
l2 = l1
l2.clear()
l1
l2
- 首先定义 l1、l2是两个列表对象
- 列表对象l1调用clear函数之后
- l1、l2都清空了

另一种情况
l1 = [0, 1, 2]
l2 = l1
l2 = []
l1
l2
- 还是这两个列表对象
- 将空列表[ ] 赋给 l2
- l1 不会受到影响

- 为什么会不一样呢?
将l2清空
l1 = [1, 2, 3]
l2 = l1
l2.clear()
print(l1, l2)
- 将l1赋给l2
- 两个列表对象 引用着 同一地址

- l2 清空就是
- l1 清空

通过id观察
l1 = [1, 2, 3]
l2 = l1
id(l1), id(l2)
l2.clear()
id(l1), id(l2)
- 这两个列表对象
- 地址始终没有变化
- 一直指向同一个位置

- 所以清空一个
- 另一个所指向的地址不变
- 也清空了
- 另一个所指向的地址不变
将空列表赋给l2
- 回到pythontutor
l1 = [1, 2, 3]
l2 = l1
l2 = []
print(l1, l2)
- 将l1赋给l2
- 两个列表对象指向同一地址

- 将空列表[]赋给l2
- l2 地址变了

- l1 地址没变
- 还是原来的
通过id观察
l1 = [0, 1, 2]
id(l1)
l2 = l1
id(l2)
l2 = []
id(l1), id(l2)
- 通过id函数得到列表的地址

- 将空列表赋给l2
- 让l2指向一个空列表的地址
- 是一个新地址
- 和l1那个地址就没关系了
总结一下 新单词
单词单词含义描述list
列表内建可变序列append
追加list
的方法
用于在列表的末尾添加一个元素clear
清空list
的方法
清空列表function
函数独立的代码块
可以直接调用method
方法与对象相关联的函数
需要通过对象来调用
总结
- 这次了解了 list列表的 清空方法
- clear
- clear
- 前面要有 对象名
- .(点)的意思是 里面的
- 可以把整个列表清空
- 就像清空回收站

clist = list("oeasy")
clist
clist.clear()
- 不想
全
清空定点删除
可以 吗?🤔
- 下次再说 👋
- 蓝桥->https://www.lanqiao.cn/courses/3584
- github->https://github.com/overmind1980/oeasy-python-tutorial
- gitee->https://gitee.com/overmind1980/oeasypython