Python集合常用的操作

集合

集合是可变数据类型,但它里面的元素必须是不可变的数据类型。

集合无序且不重复,有着字典的外形,但内部元素不是键值对。

set1 = set({1,2,3})
set2 = {1,2,3,[2,3],{'name':'mumu'}}  # 错的
print(set1)
print(set2)
set1 = {'mm', 'mumu', '怪大叔', '小哥哥'}

1、集合的增删查

set = {'mm', 'mumu', '怪大叔', '小哥哥'}

set.add('男神')  # 随机无序添加
set.update('abc')  # 拆分迭代,随机添加

set.pop()  # 随机删除,有返回值
set.remove('mm')  # 按元素,若没有,则会报错
# set.clear()  # 清空
# del set  # 删除集合

for i in set:
    print(i)

  

2、集合的基本运算

交集

A = {1, 2, 3, 4}
B = {3, 4, 5, 6, 7}
C = A.intersection(B)  # {3, 4}
D = A & B  # {3, 4}

并集

C = A.union(B)  # {1, 2, 3, 4, 5, 6, 7}
D = A | B  # {1, 2, 3, 4, 5, 6, 7}

反交集

C = A.symmetric_difference(B)  # {1, 2, 5, 6, 7}
D = A ^ B  # {1, 2, 5, 6, 7}

差集

C = A.difference(B)  # A独有的部分,{1, 2}
D = A - B  # A独有的部分,{1, 2}

集合判断

A = {1,2,3,}
B = {1,2,3,4,5,6}
print(A < B)
print(A.issubset(B))  # 这两个相同,都是说明A是B子集。
print(B > A)
print(B.issuperset(A))  # 这两个相同,都是说明B是A超集。

  

3、去重

li = [1, 2, 33, 33, 2, 1, 4, 5, 6, 6]
set1 = set(li)
li = list(set1)  # [1, 2, 33, 4, 5, 6]

  

4、不可变的集合

s = frozenset('mumu哟')
print(s,type(s))  # 无序,拆分,元素唯一,frozenset({'u', '哟', 'm'}) <class 'frozenset'>
for i in s:
    print(i)

  

原文地址:https://www.cnblogs.com/MuMuyom/p/10649123.html