oeasy Python 125 集合_元素操作_set_add_添加集合元素_remove_删除_pop_clear

oeasy python 124Python集合set详解:

  • 这是 oeasy 系统化 Python 教程,从基础一步步讲,扎实、完整、不跳步。愿意花时间学,就能真正学会。

集合_元素操作_set_add_添加集合元素_remove_删除_pop_clear

回忆

  • 也就是 字符串
  • 字符序列 和 列表、元组一样
  • 序列的东西他全能用
  • in
  • 加法、乘法运算
  • 索引
  • 切片
  • index
  • len
  • max
  • min
  • 都属于序列
  • 有序的排列
  • 可以用 序列的 方法操作

图片描述

  • 有 ​​无序的​​ 容器 吗??🤔
观察
  • 括号类型
  • 小括号对应的是元组 tuple
  • 不可变的序列
  • 中括号对应的是列表 list
  • 可变的序列
  • 元组 tuple 是只读的序列
(0, 1)
type((0, 1))
type([0, 1])
type({0, 1})
  • 大括号对应的是什么数据类型呢?

图片描述

  • set 这词怎么来的?
set
  • 最早 来自于 宗教教派
  • 类似的 一群人
  • 坐(sit) 在一起 讨论

图片描述

  • 许多具有 相似性或天然亲和力的 人或事
  • 一组一套 某种东西

图片描述

  • python 怎么理解 set呢?
set 集合
help(set)
  • set 是集合

图片描述

  • 集合是一个容器类型
  1. 无序 的
  2. 内部元素唯一 的
  • 这怎么理解呢?
无序
  • 我们先来看看
  • 无序
[0, 1] == [1, 0]
{0, 1} == {1, 0}
  • 元组、列表 是 序列类
  • 有次序的

图片描述

  • set容器里面的元素
  • 没有顺序的
  • 如何理解 内部元素 ​​唯一​​ 呢?
集合内部元素的唯一性
  • 列表元素 可以雷同的
[0, 1] 
[0, 1, 1]
{0, 1, 1}
  • 同类项 会被合并

图片描述

  • 集合容器的两个特点
  1. 无序
  2. 元素唯一
添加元素
l = []
type(l)
l.append(0)
l.append(1)
l
l.insert(0, -1)
l
  • 回忆 列表 如何 添加列表项

图片描述

  • 集合 用 啥方法 呢?
查询帮助
  • 键入s.之后
  • 按下tab

图片描述

  • 集合的 添加方法
  • 用的是add

图片描述

  • 如果 集合里 已经有了这个元素
  • 那么 add函数 就没有 任何效果
添加
s = set()
s
s.add(1)
s
s.add(2)
s.add(3)
s
s.add(1)
s
  • 列表里 可以有 相同列表项
  • 集合里 元素 必须唯一

图片描述

  • 这有 ​​什么​​意义吗?
具体意义
  • 比如
  • 已经 收录的元素
  • 不用 重复 收录
  • 元素唯一性

图片描述

  • 集合中的元素 都是不同的
  • 相同的 就会被合并
  • 集合 可以 清空 吗?
清空元素
  • help(set.clear)

图片描述

  • 这个和列表一样
  • 列表 list 是 清空 所有的列表项
  • 集合 set 是 清空 所有的集合项

图片描述

  • 这个有点太猛了
  • 想 只删除 ​​某个​​元素 呢?
删除元素
  • 找到删除函数remove
  • 删除指定的集合项元素
s = {1, 2, 3}
s.remove(1)
s
s.remove(2)
s
s.remove(3)
s
s.remove(4)
  • 被删除的
  • ​必须​​得是 集合的 元素

图片描述

  • 找不到
  • 就会 ​​报错​
对比remove函数
  • 集合 set.remove
  • 很像 列表 list.remove
l = [0, 1]
l.remove(2)
  • 如果 remove 不存在的元素
  • 都要报错

图片描述

  • 集合也一样
s.remove("a")
  • 一样 报错

图片描述

  • 有不报错的方法么?
discard 丢弃
  • discard 丢弃
help(set.discard)
  • 有 就删掉
  • 没有 就忽略

图片描述

  • 不报错

图片描述

  • 还有 和删除 相关的 吗?
pop 弹出

图片描述

  • 试试

图片描述

  • 如果 集合 空了
  • 就不能 ​​pop​​ 了
  • 报KeyError
  • 如果集合里有元素
  • 就弹出一个并返回
  • pop弹栈方法
  • 列表类 也有
对比 pop函数
  • 列表总在 尾部 弹出 列表项

图片描述

  • 但是集合 是 无序的

图片描述

  • 弹出 也和定义次序 不相关
  • 这和 list 是不同的

类型

pop() 行为

list

有序

无参弹最后一个

支持指定索引

set

无序

随机弹一个

不支持传参

总结
  • 集合 有2个特点
  1. 无序
  2. 元素唯一
  • 集合方法

方法名

功能说明

add

添加元素,已存在则无操作

clear

清空集合所有元素

remove

删除指定元素,不存在则报错

discard

删除指定元素,不存在则无操作

pop

随机删除并返回一个元素,空集合则报错

  • 不能修改 的 列表 是 元组

图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值