集合常见操作

# 数据类型分类
# 可变类型:列表、字典
# 不可变类型:整数、字符串、元组


# 集合 set
# 集合中存放的是不可变类型
# 集合的元素不可重复
# 集合是无序的

# 若设置集合为字符串,则遍历字符串的每个字符添加到集合
s = set('aabbcc')
print(s)  # 结果为{'b', 'a', 'c'}

s = set(['aa', 'bb', 'cc', 'aa'])
print(s)  # 结果为{'aa', 'bb', 'cc'}要与下方做对比

# # 列表等可变类型无法作为元素添加至集合
# s = set(['aa', 'bb', 'cc', 'aa'], 1)
# print(s)  # 结果为{'aa', 'bb', 'cc'} # 此时会报错

# add('abc') # 追加一个元素(无序)
s.add('abc')
print(s)

# update(s2) # 求并集并更新
s1 = {1, 2}
s2 = {3, 4}
s1.update(s2)
print(s1)

# pop() # 随即删除集合的元素,删除的结果可获取
v = s.pop()
print(s, v)

# remove('ac') # 指定元素移除
s.remove('cc')
print(s)

# 集合运算

s1 = {'abc', 'zs', 'ls'}
s2 = {'zs', 'ls', 'bcd'}

# 求交集&
print(s1 & s2)
print(s1.intersection(s2))

# 求并集|
print(s1 | s2)
print(s1.union(s2))

# 求差集-
print(s1 - s2)
print(s1.difference(s2))

# 求交叉补集^
print(s1 ^ s2)
print(s1.symmetric_difference(s2))

s1 = {'abc', 'zs', 'ls'}
s2 = {'zs', 'ls', 'bcd'}

# 求差集并更新
s1.difference_update(s2)
print(s1)

# 判断无交集
s1 = {1, 2}
s2 = {3, 4}
print(s1.isdisjoint(s2))

# 判断子集
s1 = {1, 2}
s2 = {1, 2, 3, 4}
print(s1.issubset(s2))

# 判断父集
s1 = {1, 2}
s2 = {1, 2, 3, 4}
print(s2.issuperset(s1))

# 集合是可变类型,但是也可以通过来定义不可变集合
s = frozenset('abcd')
print(s)  # 结果为 frozenset({'b', 'c', 'd', 'a'})
原文地址:https://www.cnblogs.com/wjlv/p/10819096.html