集合的其他内置方法

交叉补集:先合并再减去共有的

python_1 = ['lcg', 'szw', 'zjw']
linux_1 = ['lcg', 'szw','liushui']
p_s=set(python_1)
l_s=set(linux_1)
print(p_s,l_s)
print(p_s.symmetric_difference(l_s))#求交叉补集集
print(p_s^l_s)              #求交叉补集集

输出

{'lcg', 'zjw', 'szw'} {'lcg', 'szw', 'liushui'}
{'zjw', 'liushui'}
{'zjw', 'liushui'}

判断是否有交集

#判断是否有交集 有False 无True
s1={1,2}
s2={3,4}
print(s1.isdisjoint(s2))

输出

True

判断子父集关系

#判断子集
s1={1,2}
s2={1,2,3,}
print(s1.issubset(s2))#  s1是否是s2的子集
print(s2.issubset(s1))#  s2是否是s1的子集
print(s2.issuperset(s1))#判断s2是否是s1的父集

输出

True
False
True

更新

#更新
s1={1,2}
s2={1,2,3,}
s1.update(s2)
print(s1)#更新为s2,add是在后面添加一个值

输出

{1, 2, 3}

定义一个不可变的集合

#定义一个不可变的集合
s=frozenset('hello')
print(s)
s.add

报错

AttributeError: 'frozenset' object has no attribute 'add'
#定义一个不可变的集合
s=frozenset('hello')
print(s)
s.pop

报错

AttributeError: 'frozenset' object has no attribute 'pop'
列表与集合之间的转换
# 列表与集合之间的转换
names = ['alex', 'alex', 'wupeiqi']
s = set(names)
print(s)
names = list(s)
print(names)

输出

{'alex', 'wupeiqi'}
['alex', 'wupeiqi']
# 列表与集合之间的转换
names = ['alex', 'alex', 'wupeiqi']
s = set(names)
names = list(set(names))
print(names)

输出

['alex', 'wupeiqi']

 

转载于:https://www.cnblogs.com/liushuizs/p/10262520.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值