python之路 - 集合

set集合是无序的,不能通过索引和切片来做一些操作


#创建集合
>>> n = set('hello')
>>> print(n)
{'l', 'o', 'e', 'h'}

#集合添加、删除

#(1)添加
>>> n = set('hello')
>>> n.add('onion')
>>> print(n)
{'h', 'l', 'o', 'onion', 'e'}

#(2)删除
#随机删除
>>> n.pop()		
 
#指定删除
>>> n.remove('h')		#删除元素不存在会报错
>>> n.discard('mmmmmm')	#删除元素不存在不会报错

#交集
m={'google','baidu','csdn','163'}
n={'google','baidu','Microsoft'}
print(m.intersection(n))
print(m & n)
{'google', 'baidu'}


#并集

m={'google','baidu','csdn','163'}
n={'google','baidu','Microsoft'}
print(m.union(n))
print(m | n)
{'Microsoft', 'csdn', 'baidu', '163', 'google'}

#差集
m={'google','baidu','csdn','163'}
n={'google','baidu',Microsoft'}
print(m - n)
print(m.difference(n)
{'163', 'csdn'}

#交叉补集
m={'google','baidu','csdn','163'}
n={'google','baidu','Microsoft'}
print(m.symmetric_difference(n))
print(m ^ n)
{'Microsoft', 'csdn', '163'}

#difference_update 表示集合A中存在,但是在集合B中不存在的元素,并更新A集合,没有返回值。
m.difference_update(n)
print(m)
{'csdn', '163'}

#判断是否是相交集,返回bool值
s1={1,2}
s2={2,3,5}
print(s1.isdisjoint(s2))
False

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

#判断是否是超集,返回bool值
print(s2.issuperset(s1))#True 	s1 是s2 的父集

s1={1,2}
s2={1,2,3}
# s1.update(s2)		#更新多个值
# s1.add(1,2,3,4) 	#更新一个值
# s1.union(s2) 		#不更新

'''frozenset() 返回一个冻结的集合,冻结后集合不能再添加或删除任何元素。'''
>>>a = frozenset(range(10))     # 生成一个新的不可变集合
>>> a
frozenset([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
>>> b = frozenset('runoob')
>>> b
frozenset(['b', 'r', 'u', 'o', 'n'])   # 创建不可变集合
>>>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值