Python -- 集合

2020-05-09  本文已影响0人  墨凌风起

集合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'}

上一篇 下一篇

猜你喜欢

热点阅读