python集合的并交差操作

本文详细介绍了Python中集合的创建与操作,包括使用{}

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

创建两个集合用于测试,创建集合可以用两种方式,{}或者set,但是不能用{}创建空集合,因为s={}表示创建一个空字典

s1 = {}
print(type(s1))
s2 = set()
print(type(s2))
s3 = {1,2,3}
print(type(s3))

# <class 'dict'>
# <class 'set'>
# <class 'set'>

1.集合的并 union

set1.union(set2, set3…)
返回值:返回一个新集合

s1 = {1,2,3,4}
s2 = {2,3,4,4,6}
s3 = {7,8}
print(s2)
print(s1.union(s2, s3))
# {2, 3, 4, 6}
# {1, 2, 3, 4, 6,7,8}

集合是无序的不重复元素序列,重复元素会被自动去掉
2.集合的交 intersection

set1.intersection(set2, set3 …)
返回值:返回一个新集合

s1 = {1,2,3,4}
s2 = {2,3,4,4,6}
s3 = {7,8}
print(s1.intersection(s2, s3))
print(s1.intersection(s2))

# set()
# {2, 3, 4}

set1.intersection_update(set2,set3)
返回值:没有返回值,在原始的集合上移除不重叠的元素

s1 = {1,2,3,4}
s2 = {2,3,4,4,6}
s3 = {7,8}
print(s1.intersection_update(s2))
s1.intersection_update(s2)
print(s1)
# None
# {2, 3, 4}

3.集合的差 difference

set1.difference(set2, set3 …)
返回值:返回一个新集合

s1 = {1,2,3,4}
s2 = {4,6,8}
s3 = {2,7,8}
print(s1.difference(s2,s3))
# {1, 3}

set1.difference_update(set2,set3)
返回值:没有返回值,在原始的集合上移除不重叠的元素

s1 = {1,2,3,4}
s2 = {4,6,8}
s3 = {2,7,8}
print(s1.difference_update(s2,s3))
s1.difference_update(s2,s3)
print(s1)

# None
# {1, 3}

集合还有两个常用的方法:
set1.isdisjoint(set2)
判断两个集合是否包含相同的元素,如果没有返回 True,否则返回 False

s1 = {1,2,3,4}
s2 = {4,6,8}
s3 = {5,7,8}
print(s1.isdisjoint(s2))
print(s1.isdisjoint(s3))
# False
# True

set1.issubset(set2)
判断set1是否是set2的子集,是则返回true,否则返回false

s1 = {1,2}
s2 = {1,2,3,4}
print(s1.issubset(s2))
print(s2.issubset(s1))
# True
# False

或者直接使用逻辑运算符,更简单:

ls1 = {1, 2, 3, 4, 5}
ls2 = {3, 4, 5, 6}
print("集合并集:", ls1 | ls2)
print("集合交集:", ls1 & ls2)
print("集合1-交集", ls1 - ls2)
print("集合交叉集", ls1 ^ ls2)

输出为:

集合并集: {1, 2, 3, 4, 5, 6}
集合交集: {3, 4, 5}
集合1-交集 {1, 2}
集合交叉集 {1, 2, 6}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值