06-数据类型的常用操作-集合常用操作

 集合特点:去重,无序。

方法描述
add()为集合添加元素
update()给集合添加元素
clear()移除集合中的所有元素
copy()浅拷贝一个集合
discard()删除集合中指定的元素
remove()移除指定元素
pop()随机移除元素
difference()返回多个集合的差集
difference_update()移除集合中的元素,该元素在指定的集合也存在。
intersection()返回集合的交集
intersection_update()返回集合的交集。
isdisjoint()判断两个集合是否包含相同的元素,如果没有返回 True,否则返回 False。
issubset()判断指定集合是否为该方法参数集合的子集。
issuperset()判断该方法的参数集合是否为指定集合的子集
symmetric_difference()返回两个集合中不重复的元素集合(对称差集)。
symmetric_difference_update()移除当前集合中在另外一个指定集合相同的元素,并将另外一个指定集合中不同的元素插入到当前集合中。
union()返回两个集合的并集
"""空集"""
data1 = set()
print(data1, type(data1))  # set() <class 'set'>

"""有成员的集合"""
data2 = {"A", "B", "C"}
print(data2, type(data2))  # {'A', 'C', 'B'} <class 'set'>
""""
add    集合新增成员
update 集合新增成员
"""
data1 = {"A", "B"}
data1.add("C")
print(data1)  # {'C', 'A', 'B'}

data1 = {"A", "B"}
data1.update("C")
print(data1)  # {'A', 'B', 'C'}

# 添加已经存在的成员,会被去重掉
data1 = {"A", "B"}
data1.add("A")
print(data1)  # {'A', 'B'}

data1 = {"A", "B"}
data1.update("B")
print(data1)  # {'B', 'A'}
"""
clear 清空集合中所有的成员
del   使用关键字,删除空间对应的变量和数据
"""
data1 = {"A", "B"}
data1.clear()
print(data1)  # set() 空集

data2 = {"A", "B"}
del data2
print(data2)  # 报错,NameError: name 'data2' is not defined  ===> data2没有这个变量
"""
删除集合的指定成员
集合.remove()  删除指定成员[常用]
集合.discard()  删除指定成员
集合.pop()      随机删除一个成员
"""
data1 = {"A", "B", "C", "D"}
data1.remove("C")
print(data1)  # {'B', 'A', 'D'}

data1 = {"A", "B", "C", "D"}
data1.discard("C")
print(data1)  # {'D', 'A', 'B'}

# 随机删除一个成员
data1 = {"A", "B", "C", "D"}
ret = data1.pop()
print(ret, data1)

 

集合常用操作-交叉并补:

"""
差集
集合1.difference(集合2)  
集合1 - 集合2
"""
set1 = {"周", "王", "黄", "斯"}
set2 = {"周", "刘", "李", "斯"}
# 运算符 算set1的差集
print(set1 - set2)  # {'王', '黄'}
# 算set2的差集
print(set2 - set1)  # {'李', '刘'}

# 方法 算set1的差集
print(set1.difference(set2))  # {'王', '黄'}
# 算set2的差集
print(set2.difference(set1))  # {'李', '刘'}
"""
并集
集合1.union(集合2)
集合1 | 集合2
"""
set1 = {"周", "王", "黄", "斯"}
set2 = {"周", "刘", "李", "斯"}
# 运算符
print(set1 | set2)  # {'斯', '李', '王', '刘', '黄', '周'}
# 方法
print(set1.union(set2))  # {'斯', '李', '王', '刘', '黄', '周'}
"""
交集
集合1.intersection(集合2)
集合1 & 集合2
"""
set1 = {"周", "王", "黄", "斯"}
set2 = {"周", "刘", "李", "斯"}
# 运算符
print(set1 & set2)  # {'斯', '周'}
# 方法
print(set1.intersection(set2))  # {'斯', '周'}
"""
对称差集:返回两个集合中不重复的元素集合, 补集情况涵盖在其中
集合1.symmetric_difference(集合2)
集合1 ^ 集合2
"""
set1 = {"周", "王", "黄", "斯"}
set2 = {"周", "刘", "李", "斯"}
print(set1 ^ set2)  # {'黄', '王', '刘', '李'}
print(set1.symmetric_difference(set2))  # {'黄', '王', '刘', '李'}
"""基于对称差集就可以很方便的得到补集"""
# (A ^ B) & B = A的补集
# (A ^ B) & A = B的补集
set1 = {"周", "王", "黄", "斯"}
set2 = {"周", "刘", "李", "斯"}
# set1的补集
print((set1 ^ set2) & set2)  # {'刘', '李'}
# set2的补集
print((set1 ^ set2) & set1)  # {'黄', '王'}
"""
issuperset 判断一个集合是否是另一个集合的超集(父集)
issubset   判断一个集合是否是另一个集合的子集
"""
set1 = {"A", "B", "C", "D"}
set2 = {"A", "D"}
set3 = {"A", "C"}
# 判断set1是否是set2的父集
print(set1.issuperset(set2))  # True

# 判断set3是否是set1的子集
print(set3.issubset(set1))    # True

# 判断set2是否是set3的父集
print(set2.issuperset(set3))  # False

# 判断set2是否是set3的子集
print(set2.issubset(set3))  # False

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值