集合操作

集合是一个无序、无重复项的集合。

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

原文地址:https://www.cnblogs.com/zj-luxj/p/6830120.html