Python集合

特征

  • 无序
    集合中的元素没有任何顺序(集合中的元素没有先后之分,(1,2,3)和(2,3,1)是一样的)
  • 唯一
    集合中的值不会重复(唯一)
  • 不可变
    集合中可以使用整数,浮点数,布尔值,复数,字符串,元组,冰冻集合

创建集合

  • 创建空集合
    变量 = set()
    EG1
    在这里插入图片描述
    实行结果:
    {‘o’, ‘l’, ‘h’, ‘e’}
    {‘o’, ‘l’, ‘h’, ‘e’}
    EG2
    创建一个含有一个元素的集合
    在这里插入图片描述
  • 创建多个数据的集合
    变量 = {值,值…}
    注意:集合是唯一性数据,所有相同的数据只会保留一份。

基本操作

集合不存在基本操作

成员检测

  • 值 in 集合
    检测某个值是否存在于集合当中
  • 值 not in 集合
    检测一个值是否不再集合当中

内置函数

  • len()
    计算集合的长度
  • max()
    获取集合中的最大值
  • min()
    获取集合中的最小值
  • set()
    创建空集合或者将其他数据转换为集合

操作

  1. set.add(x)
    将元素 x 添加到集合 s 中,如果元素已存在,则不进行任何操作。
    注意:直接改变原有集合
  2. s.update( x )
    还有一个方法,也可以添加元素,且参数可以是列表,元组,字典. x 可以有多个,用逗号分开。(二维列表为什么不能添加?)
    注意:
    s.update( {“字符串”} ) 将字符串添加到集合中,有重复的会忽略。
    s.update( “字符串” ) 将字符串拆分单个字符后,然后再一个个添加到集合中,有重复的会忽略。

    直接改变原有集合
  3. set.remove(x)
    将元素 x 添加到集合 s 中移除,如果元素不存在,则会发生错误。
    注意:直接改变原有集合
  4. set.discard(x)
    此外还有一个方法也是移除集合中的元素,且如果元素不存在,不会发生错误。(是否只能删除一个元素,而列表和元祖等删除就发生错误)
    注意:只能删除一个元素,不能删除多个,直接改变原有集合
    在这里插入图片描述
    实行结果:
    TypeError: unhashable type: 'list’
  5. set.pop()
    随机删除集合中的一个元素 (没有随机删除,只是删除了第一个元素)
    注意:直接改变原有集合
  6. 集合1.difference(集合2)
    差集
    返回值:集合
    操作:获取存在于集合1但是不存在与集合2中的数据的集合
  7. 集合1.difference(集合2)
    差集 更新
    返回值:无 直接将结果赋值给集合1
    操作:获取存在于集合1但是不存在与集合2中的数据的集合
  8. 集合1.intersection(集合2)
    交集
    返回值:集合
    操作:获取即存在于集合1又存在于集合2中的数据组成的集合
  9. 集合1.intersection_update(集合2)
    交集更新
    返回值:None 直接将结果赋值给集合1
    操作:获取即存在于集合1又存在于集合2中的数据组成的集合
  10. 集合1.union(集合2)
    并集
    返回值:集合
    操作:将集合1和集合2中所有数据新建一个集合(去重)
  11. 集合1.update(集合2)
    并集更新
    返回值:无 直接将结果赋值给集合1
    操作:将集合1和集合2中所有数据新建一个集合(去重)
  12. 集合1.issuperset(集合2)
    检测一个集合是不是另外一个集合的超集
    返回值:布尔值
  13. 集合1.issubset(集合2)
    检测一个集合是不是另外一个集合的子集
    返回值:布尔值
  14. 集合1.isdisjoint(集合)
    检测2个集合是否不相交
    返回值:布尔值
  15. 集合1.symmetric_difference(集合2)
    对称差集操作
    返回值:集合
    操作:将集合1和集合2不相交的部分取出组成的新的集合
  16. 集合1.symmetric_difference(集合2)
    对称差集更新操作
    返回值:None 直接将结果赋值给集合1
    操作:将集合1和集合2不相交的部分取出组成的新的集合

注意:

集合可以有任意数量的元素,它们可以是不同的类型(例如:数字、元组、字符串等)。但是,集合不能有可变元素(例如:列表、集合或字典)

冰冻集合/固定集合 frozenset

含义:冰冻集合就是一旦创建,不可以在进行任何修改的集合。
创建

  • 创建空的冰冻集合
    变量 = frozenset()
  • 创建多个元素的集合
    变量 = frozenset(容器类数据)

冰冻集合的遍历
for 变量 in 冰冻集合:
使用变量

推导式:

  • 普通的集合推导式
    变量={i for i in 集合}
  • 带有判断条件的推导式
    变量={i for i in 集合 if}
  • 多循环推导式
    变量 = {i+j for i in 集合1 for j in 集合2}
  • 带有判断条件的多循环推导式
    变量 = {i+j for i in 集合1 for j in 集合2 if 条件表达式}

案例

  • a – b: 只找集合a中包含元素
    在这里插入图片描述
    实行结果:
    {‘hello’}
  • a | b: 集合a或b中包含的所有元素
    在这里插入图片描述
    实行结果:
    {‘2’, ‘r’, ‘3’, ‘c’, ‘e’, ‘d’, ‘1’, ‘w’, ‘q’}
  • a & b:集合a和b中都包含了的元素
    在这里插入图片描述
    实行结果:
    {‘1’, ‘w’, ‘q’}
  • a ^ b:不同时包含于a和b的元素
    在这里插入图片描述
    实行结果:
    {‘e’, ‘3’, ‘2’, ‘r’, ‘d’, ‘c’}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值