python小白之路:第四章数据类型第五节集合

集合的基本操作和常规操作

1.定义

确定的一组无序的数据的集合,值不能重复
语法:{}、set()、集合推导式
False和0只能存在一个,True和1只能存在一个
列表放不进去

2.冰冻集合

v = frozenset()
一旦定义不能修改,只能做运算
本身就是一个强制转换类的函数,可以把其他任何容器类型的数据转为冰冻集合

3.集合推导式

    # 普通推导式
    varset ={1,2,3,4}
    newset = {i<<1 for i in varset}
    print(newset)
    # {8, 2, 4, 6}
    
    # 带条件表达式
    newset={i<<1 for i in varset if i % 2 == 0 }
    print(newset)
    # {8, 4}
    
    # 多循环表达式
    var1 = {1,2,3,4}
    var2 = {4,5,6}
    newset={i+j for i in var1 for  j in var2 }
    print(newset)
    # {5, 6, 7, 8, 9, 10}
    
    # 带条件+多循环表达式
    var1 = {1,2,3,4}
    var2 = {4,5,6}
    newset={i+j for i in var1 if i % 2 == 0 for  j in var2 }
    print(newset)
    # {6, 7, 8, 9, 10}

4.集合运算

运算符:&、|、-、^

5.常用集合函数

set.add()

用于给集合添加元素

  set = {1,2,3,4}
    set.add(4)
    set.add(5)
    print(set)
    # {1, 2, 3, 4, 5}
set.clear()

移除集合中的所有元素。

  set = {1,2,3,4}
    set.clear()
    print(set)
    # set()
set.copy()

拷贝一个集合

set = {1,2,3,4}
set1=set.copy()
print(set1)
# {1, 2, 3, 4}
set.difference()

返回集合的差集

set = {1,2,3,4}
set1 = {1,2,5,6}
print(set.difference(set1))
# {3, 4}
set.difference_update()

移除两个集合中都存在的元素,将第一个集合更新为差集

    set = {1,2,3,4}
    set1 = {1,2,5,6}
    set.difference_update(set1)
    print(set.difference_update(set1))
    print(set)
    print(set1)
    # None
    # {3, 4}
    # {1, 2, 5, 6}
set.intersection()

返回交集。

set = {1,2,3,4}
set1 = {1,2,5,6}
print(set.intersection(set1))
# {1, 2}
set.intersection_update()

将第一个集合更新为两个集合的交集

 set = {1,2,3,4}
    set1 = {1,2,5,6}
    print(set.intersection_update(set1))
    print(set)
    print(set1)
    # None
    # {1, 2}
    # {1, 2, 5, 6}
set.symmetric_difference()

返回两个集合的对称差集

 set = {1,2,3,4}
    set1 = {1,2,5,6}
    print(set.symmetric_difference(set1))
    # {3, 4, 5, 6}
set.symmetric_difference_update()

将第一个集合更新为两个集合的对称集合

 set = {1,2,3,4}
    set1 = {1,2,5,6}
    print(set.symmetric_difference_update(set1))
    print(set)
    print(set1)
    # None
    # {3, 4, 5, 6}
    # {1, 2, 5, 6}
set.union()

返回两个集合的并集

   set = {1,2,3,4}
    set1 = {1,2,5,6}
    print(set.union(set1))
    # {1, 2, 3, 4, 5, 6}
set.update()

将第一个集合更新为并集。

  set = {1,2,3,4}
    set1 = {1,2,5,6}
    print(set.update(set1))
    print(set)
    print(set1)
    # None
    # {1, 2, 3, 4, 5, 6}
    # {1, 2, 5, 6}
set.discard() & pop() & remove()

移除指定的集合元素,不报错

随机移除一个集合元素,并返回该元素

移除指定的集合元素,返回None,不存在会报错

 set = {1,2,3,4}
    print(set.discard(1))
    print(set) 
    # None
    # {2, 3, 4}
    
    set = {1,2,3,4}
    print(set.pop())
    print(set)
    # 1
    # {2, 3, 4}
    
    set = {1,2,3,4}
    print(set.remove(2))
    print(set)
    # None
    # {1, 3, 4}
set.isdisjoint()

判断是否两个集合不相交

  set = {1,2,3,4}
    set1 = {1,2,5,6}
    set2 = {5,6,7,8}
    print(set.isdisjoint(set1))
    print(set.isdisjoint(set2))
    # False
    # True
set.issuperset() & set.issubset()

检测是否是超集和子集

 vars1 = {1,2,3,4}
    vars2 = {1,2}
    vars1.issuperset(vars2)
    # True
    vars1.issubset(vars2)
    # False
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值