python基础-集合

集合的定义

  • 由不同元素组成(不可重复)
  • 无序
  • 集合中的元素必须是不可变类型,集合是可变类型,可以使用frozenset定义不可变集合
  • 集合可以作为字典的Key
# 可变集合,允许添加 删除元素
setTest = {1,2,3,6,5}
# 不可变集合
set3 = frozenset({1,2,5,3,7})
set4 = frozenset('Django')
集合的内置方法
  • add 添加元素(不可重复)

只可以添加不可重复的元素

  • clear 清空集合
  • pop 随机删除一个元素
  • remove 根据元素值删除该元素,不存在抛出异常
  • discard 根据元素值删除该元素,不存在不会抛出异常
集合关系运算
  • set 列表、元组去重,并转换为集合
test = [1,1,2,2,3,3]
test2 = (1,1,2,2,3,3)
print(set(test))      # {1, 2, 3}
print(set(test2))     # {1, 2, 3}
  • intersection 计算交集 (set1&set2)
set1 = {1,2,3,4,5,6}
set2 = {2,3,4,5,6,7,8,9}
print(set1.intersection(set2))
print(set1&set2)
{2, 3, 4, 5, 6}
  • intersection_update求完交集之后更新,只更新set1
set1.intersection_update(set2)
print(set1)  # {2, 3, 4, 5, 6}
print(set2)  # {2, 3, 4, 5, 6, 7, 8, 9}
  • union 计算并集 (set1|set2)
print(set1.union(set2))
print(set1|set2)
{1, 2, 3, 4, 5, 6, 7, 8, 9}
  • update 计算并集,并更新Set1
set1.update(set2)
print(set1)  # {1, 2, 3, 4, 5, 6, 7, 8, 9}
print(set2)  # {2, 3, 4, 5, 6, 7, 8, 9}
  • difference 计算差集(set2-set1)
print(set2.difference(set1))
print(set2-set1)    #两种写法
{8, 9, 7}
  • difference_update 求完差集之后更新,只更新被减数
set1.difference_update(set2)
print(set1)  # {1}
print(set2)  # {2, 3, 4, 5, 6, 7, 8, 9}
  • symmetric_difference 交叉补集(set1^set2)
set1.symmetric_difference(set2)
set1^set2       #两种写法
{1, 7, 8, 9}
  • symmetric_difference_update求完交叉补集之后更新,只更新set1
set1.symmetric_difference_update(set2)
print(set1)  # {1, 7, 8, 9}
print(set2)  # {2, 3, 4, 5, 6, 7, 8, 9}
  • isdisjoint 当两个集合没有交集时返回True
  • issubset 判断set1是否为set2的子集,若是返回True
  • issuperset 判断Set1是set2的父集,若是,返回True
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值