集合是一个无序、无重复项的集合。
1、创建集合
list1 = [1,2,3,3,'a','b','b']
list1 = set(list1)
print(list1) -> {1,2,3,b,a}这就是得到的无序的(每次打印位置可能都会有变动,元素是固定的)、无重复项的集合,用{}表示
list2 = [1,3,'c','d','e']
list2 = set(list2)
print(list2) ->{1, 3, 'd', 'e', 'c'}
二、集合功能
1、交集:把两个集合的交集作为一个新的集合返回
交集函数表示方法:intersection
如:new_list = list1.intersection(list2)
print(new_list) -> {1, 3}
交集数学表示方法:&
new_list = list1 & list2
print(new_list) ->{1, 3}
2、并集:把两个集合的并集作为一个新的集合返回
并集函数表示方法:union
如:new_list = list1.union(list2)
print(new_list) -> {1, 2, 3, 'c', 'd', 'b', 'e', 'a'}
并集数学表示方法:|
new_list = list1 | list2
print(new_list) ->{1, 2, 3, 'c', 'd', 'b', 'e', 'a'}
3、差集:把两个集合的差集作为一个新的集合返回
差集函数表示方法:difference
如:new_list = list1.difference(list2) in list1 but not in list2
print(new_list) -> {'a', 'b', 2}
并集数学表示方法:减号(-)
new_list = list1 - list2
print(new_list) -> {'a', 'b', 2}
4、对称差集:去除两个集合中共同的部分
对称差集函数表示方法
如:new_list = list1.symmetric_difference(list2)
print(new_list) -> {2, 'b', 'a', 'c', 'e', 'd'}
对称差集数学表示方法:减号(^)
new_list = list1 ^ list2
print(new_list) -> {2, 'b', 'a', 'c', 'e', 'd'}
5、子集:判断一个集合是否是另一个集合的子集,返回bool
子集函数表示方法issubet
print({1,2,3}.subset({1,2,3,4})) -> True
print({1,2,3,5}.subset({1,2,3,4})) -> False
子集数学表示方法
print({1,2,3} < {1,2,3,4})
6、父集
父集函数表示方法issuperset
print({1,2,3,4}.issuperset({1,2,3})) -> True
print({1,2,3,4}.issuperset({1,2,3,5})) -> False
父集数学表示方法
print({1,2,3,4} > {1,2,3}) -> True
7、判断是否有交集
isdisjoint:判断是否有交集,没有交集返回True
用法:
print({1,3,7}.isdisjoint({5,6,8})) -> True
print({1,3,4}.isdisjoint({4,6,8})) -> False
三、删除
1、discard函数:如果是集合中的元素就删除这个元素,不是的话什么都不做
如
list1 = {1,2,3,'b'}
list1.discard('b')
print(list1) -> {1,2,3}
2、remove函数:如果是集合中的元素就删除,不是的话会报错keyerror,方法如上。
四、添加
add:添加一个元素至集合中
使用方法:
list1 = {1,2,3,'b'}
list1.add('a')
print(list1) ->{1, 2, 3, 'b', 'a'}
五、集合更新
1、交集更新
intersection_update:假设集合list1和list2,list1.intersection_update(list2),那就是把两个集合的交集更新到list1中,没有交集就返回一个空的集合,其中list2也可以以列表作为参数传入。
如:
list1 = {1,2,3,'b'}
list2 = {1,3,4,'a'}
list1.intersection_update(list2)
print(list1) ->{1, 3}
2、并集更新
update:假设集合list1和list2,list1.update(list2),那就是把两个集合的并集更新到list1中(与把list2的元素更新到list1一致),其中list2也可以以列表作为参数传入。
如:
list1 = {1,2,3,'b'}
list2 = {1,3,4,'a'}
list1.update(list2)
print(list1) -> {1, 2, 3, 4, 'b', 'a'}
3、差集更新
difference_update:假设集合list1和list2,list1.difference_update(list2),那就是把两个集合的差集更新到list1中,没有差集就不更新,其中list2也可以以列表作为参数传入。
如:
list1 = {1,2,3,'b'}
list2 = {1,3,4,'a'}
list1.difference_update(list2)
print(list1) ->{2, 'b'}
4、对称差集更新
symmetric_difference_update:假设集合list1和list2,list1.symmetric_difference_update(list2),那就是把两个集合的对称差集更新到list1中,没有差集就不更新,其中list2也可以以列表作为参数传入。
如
list1 = {1,2,3,'b'}
list2 = {1,3,4,'a'}
list1.symmetric_difference_update(list2)
print(list1) ->{'b', 2, 4, 'a'}