python 集合的增删改查

什么是集合

set --- 集合,集合是无序的,集合的每一个元素都是唯一的,有去重性(也就是不会出现重复的元素),不能下标取值

属于可变类型,会直接修改原数据

set1 = {1, 2, 3}

空集合问题

# 空集合:空集合不能直接用{} , 否则就是字典类型
a = {}
print(type(a))         # dict 字典类型

b = set()
print(type(b))         # set  集合类型

集合的 --- 交 并 补

交:&
并:|
补(差):-

a = {1, 2, 3}
b = {1, 2, 4}

print(a & b)  # {1, 2}
print(a | b)  # {1, 2, 3, 4}
print(a - b)  # {3}

集合 --- 增删改查

集合 --- 增

set1 = {1, 2, 3}

# add:添加
set1.add('a')
print(set1)       # {1, 2, 3, 'a'}

集合 --- 删

# pop : 删除指定元素,受到无序性,唯一性, 所以将会随机删除
set2 = {1,2,3,4,5}
set2.pop()
print(set2)
set = {1, 2, 3}

# remove : 指定删除已知元素,元素不存在会报错
set2.remove(1)
print(set2)        # {2, 3}

# 拓展,discard:与remove操作一样,区别是元素不存在不报错
set2 = {1, 2, 3}

# clear:清空集合里面的所有元素
set2.clear()
print(set2)        # set()

集合 --- 改 

set4 = {1, 2, 3, 'a'}

# 改:update ----- 可以批量加入
set4.update([1, 'f', 'g'])
print(set4)            # {1, 2, 3, 'g', 'a', 'f'}

提问:为什么代码输出的不是  {1, 2, 3, 'a', 1, 'f', 'g'}   ?有知道的可以在评论区评论一下

集合 --- 查

# isdisjoint:  判断是否没有交集 ---- 没有交集就是True,有交集就是False
# issubset:    a.issubset(b)   ---- 判断b集合里面是否存在a集合
# issuperset:  a.issuperset(b) ---- 判断a集合里面是否存在b集合

set5 = {1, 2, 3, 'a'}
set6 = {1, 2}
set7 = {3, 'b'}

print(set5.isdisjoint(set7))      # False
print(set6.issubset(set5))        # True
print(set5.issuperset(set7))      # False
set5 = {1, 2, 3, 'a'}
set6 = {1, 2, 4}


# intersection:返回集合的交集
print(set5.intersection(set6))     # {1, 2}
print(set5 & set6)                 # {1, 2}

# union:返回两个集合的并集
print(set5.union(set6))            # {1, 2, 3, 'a', 4}
print(set5 | set6)                 # {1, 2, 3, 'a', 4}

# intersection_update:a.intersection_update(b) ----- 移除a集合中不存在于b集合中的元素
set5.intersection_update(set6)
print(set5)                        # {1, 2}





set5 = {1, 2, 3, 'a'}
set6 = {1, 2, 4}

# symmetric_difference:返回两个集合中不重复的元素集合
print(set5.symmetric_difference(set6))      # {3, 4, 'a'}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值