【Python】简明集合运算

一个集合内部的操作

添加元素

add

  • 参数是单个元素
  • 示例:
    s = {'a', 'b', 'c'}
    
    s.add('x')
    print(s)
    
    s.add('x')
    print(s)
    
  • 输出:
    在这里插入图片描述

update

  • 参数可以是列表,元组,字典;注意参数是字典时只向集合中添加该字典的键值
  • 示例:
    s = {'a', 'b', 'c'}
    
    s.update(('x'))
    print(s)
    
    s.update(['x', 'y', 'z'])
    print(s)
    
    s.update({1: 'first', 2: 'second', 3: 'third'})
    print(s)
    
  • 输出:
    在这里插入图片描述

删除元素

remove

  • 如果元素不存在会报错
  • 示例:
    s = {'a', 'b', 'c'}
    
    s.remove('c')
    print(s)
    
    s.remove('x')
    print(s)
    
  • 输出:
    在这里插入图片描述

discard

  • 即使元素不存在也不会报错
  • 示例:
    s = {'a', 'b', 'c'}
    
    s.discard('c')
    print(s)
    
    s.discard('x')
    print(s)
    
  • 输出
    在这里插入图片描述

pop

  • 随机删除集合中一个元素
  • 示例:
    s = {'a', 'b', 'c'}
    
    for i in range(5):
    	tmp = s.pop()
    	print(s)
    	s.add(tmp)
    
  • 输出:
    在这里插入图片描述

计算元素个数

len

  • 示例:
    s = {'a', 'b', 'c'}
    
    print(len(s))
    
  • 输出:
    在这里插入图片描述

清空集合

clear

  • 示例:
    s = {'a', 'b', 'c'}
    
    s.clear()
    print(s)
    
  • 输出:
    在这里插入图片描述

判断某个元素是否在集合中

in

  • 示例:
    s = {'a', 'b', 'c'}
    
    print('a' in s)
    print('s' in s)
    
  • 输出:
    在这里插入图片描述

多个集合之间的操作

求并集

  • 语法:union / |
  • 维恩图:
    在这里插入图片描述
  • 示例:
    set_1 = {'a', 'b', 'c'}
    set_2 = {'c', 'd', 'e'}
    
    print(set_1.union(set_2))
    print(set_1 | set_2)
    
    输出:
    在这里插入图片描述

求交集

  • 语法:intersection / intersection_update / &
    注:intersection方法会将结果返回,而intersection_update则直接将原集合更新为交集,即在原集合上修改,无返回值

  • 维恩图:
    在这里插入图片描述

  • 示例:

    set_1 = {'a', 'b', 'c'}
    set_2 = {'c', 'd', 'e'}
    
    print(set_1.intersection(set_2))
    print(set_1 & set_2)
    
    print(set_1.intersection_update(set_2))
    print(set_1)
    

    输出:
    在这里插入图片描述

求差集

  • 语法:difference / difference_update / -
    注:difference方法会将结果返回,而difference_update则直接将原集合更新为差集,即在原集合上修改,无返回值
  • 维恩图:
    在这里插入图片描述
  • 示例:
    set_1 = {'a', 'b', 'c'}
    set_2 = {'c', 'd', 'e'}
    
    print(set_1.difference(set_2))
    print(set_1 - set_2)
    
    print(set_1.difference_update(set_2))
    print(set_1)
    
    输出:
    在这里插入图片描述

判断两个集合是否相交

  • 语法:isdisjoint
  • 维恩图:
    在这里插入图片描述
    在这里插入图片描述
  • 示例:
    set_1 = {'a', 'b', 'c'}
    set_2 = {'c', 'd', 'e'}
    
    print(set_1.isdisjoint(set_2))
    
    输出:
    在这里插入图片描述

判断集合是否为子集

  • 语法:issubset / issuperset
    注:issubset判断指定集合是否为该方法参数集合的子集;issuperset判断该方法的参数集合是否为指定集合的子集
  • 维恩图:
    在这里插入图片描述
  • 示例:
    set_1 = {'a', 'b', 'c'}
    set_2 = {'c'}
    
    print(set_1.issubset(set_2))
    print(set_1.issuperset(set_2))
    
    输出:
    在这里插入图片描述

求对称差集

  • 语法:symmetric_difference / symmetric_difference_update / ^
    注:symmetric_difference方法会将结果返回,而symmetric_difference_update则直接将原集合更新为对称差集,即在原集合上修改,无返回值

  • 维恩图:
    在这里插入图片描述

  • 示例:

    set_1 = {'a', 'b', 'c'}
    set_2 = {'c', 'd', 'e'}
    
    print(set_1.symmetric_difference(set_2))
    print(set_1 ^ set_2)
    
    print(set_1.symmetric_difference_update(set_2))
    print(set_1)
    

    输出:
    在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值