集合Set
1. 无序不重复元素的集,用{}或者set() 创建.创建空集合必须用set(),{}创建的是空字典
创建
baket = {'apple','orange','apple','pear','banana','orange'}
print(baket) #{'apple', 'pear', 'banana', 'orange'}
baket1 = set('abcdefgesdtfgh')
baket2 = set('lkjfdfgesdtfgh')
print(baket1) #{'f', 'b', 'e', 'h', 'c', 's', 'g', 'd', 'a', 't'}
print(baket2) #{'d', 'j', 'g', 'l', 's', 'f', 'e', 'h', 't', 'k'}
访问
添加 如果元素已存在,不进行任何操作
baket.add('mello')
print(baket) #{'apple', 'banana', 'pear', 'mello', 'orange'}
baket.update({'xigua','xihongshi','apple'})
print(baket) #{'apple', 'pear', 'mello', 'xigua', 'orange', 'banana', 'xihongshi'}
移除,元素不存在会错误
baket.remove('apple')
print(baket) #{'pear', 'mello', 'xigua', 'orange', 'banana', 'xihongshi'}
baket.remove('cat') #KeyError: 'cat'
移除,元素不存在不会报错
baket.discard('cat')
print(baket) #{'banana', 'xihongshi', 'pear', 'xigua', 'mello', 'orange'}
baket.discard('orange')
print(baket) #{'banana', 'xihongshi', 'pear', 'xigua', 'mello'}
随机删除集合的一个元素
set集合的pop方法会对集合进行无序排列,然后删除无须排列的左边第一个元素
print(baket.pop())
集合个数
print(len(baket1))
清空集合
baket1.clear()
print(baket1) #set()
是否存在
print('pear' in baket) #True
print('dog' in baket1) #False
differece() 返回多个集合的差集
print(baket1.difference(baket2,('a','b','d'))) #{'c'}
differece_update() 移除集合中的元素,该元素在指定集合也存在
baket1.difference_update(baket2) #{'b', 'c', 'a'}
print(baket1)
symmetric_differece() 返回两个集合不重复的元素集合
print(baket1.symmetric_difference(baket2))
print("symmetric_differece:" ,end='')
print(baket1) #{'a', 'b', 'c'}
print(baket2) #{'a', 'b', 'c'}
symmetric_differece_update() 移除当前集合在另一个指定集合相同的元素,并将另一个指定集合种不同的的元素插入当前元素中
baket1.symmetric_difference_update(baket2) #{'b', 'c', 'a'}
print("symmetric_difference_update:" ,end='')
print(baket1) #{'a', 's', 't', 'b', 'c', 'j', 'k', 'e', 'h', 'f', 'd', 'g', 'l'}
intersection() 返回集合的交集
baket1.intersection(baket2) #{'a', 'b', 'c'}
print("intersection:" ,end='')
print(baket1)
intersection_update() 返回集合的交集
baket1.intersection_update(baket2)
print(baket1)
两个集合是否包含相同元素,是返回True
print(baket1.isdisjoint(baket2))
s.issubset(s1) 判断s1集合是否是s集合的子集
print(baket1.issubset(baket2))
print(baket1.issubset(('a','b','d')))
s.issuperset(s1) 判断s集合是否是s1集合的子集
print(baket1.issuperset(baket2))
print(baket1.issuperset(('a','b','d')))
union() 返回两个集合的并集
print(baket1.union(baket2)) #{'s', 'l', 'g', 'j', 'h', 'f', 't', 'k', 'e', 'd'}
网友评论