python学习(五)---集合操作

时间:2022-12-13 00:10:30
集合操作
# 集合是个无序的,不重复的数据组合,其主要作用如下:
# 1、去重,把一个列表变成集合,就自动去重了
# 2、关系测试,测试两个数据之前的交集、差集、并集等关系
# 常用操作:
s = set([3, 5, 9, 10, 5]) # 创建一个数值集合
print(s)
# 显示:{9, 10, 3, 5}

t = set("Hello") # 创建一个唯一字符的集合
print(t)
# 显示:{'H', 'o', 'e', 'l'}

a = t | s # t和s的并集
print(a)
# 显示:{3, 5, 9, 10, 'l', 'o', 'H', 'e'}

b = t & s # t和s的交集
print(b)
# 显示:set()

c = t - s # 求差集(在t中但不在s中)
print(c)
# 显示:{'o', 'H', 'e', 'l'}

d = t ^ s # 对称差集(在t或s中,但不同时出现在二者中)
print(d)
# 显示:{'e', 3, 5, 9, 10, 'H', 'l', 'o'}

# 基本操作:
t.add('x') # 添加一项
print(t)
# 显示:{'H', 'x', 'o', 'e', 'l'}

s.update([10, 37, 42]) # 在s中添加多项
print(s)
# 显示:{3, 37, 5, 9, 10, 42}

t.remove('H') # 删除指定项
print(t)
# 显示:{'l', 'e', 'x', 'o'}

print(len(s)) # 集合s的长度
# 显示:6

f = 'x' in s # 测试x是否是s的成员
print(f)
# 显示:False
g = 'x' not in s # 测试x是否不是s的成员
print(g)
# 显示:True

print(s.issubset(t)) # 测试是否 s 中的每一个元素都在 t 中,即s是不是t的子集
print(s <= t) # 同上
# 显示:False

print(s.issuperset(t)) # 测试是否t中的每一个元素都在s中,即s是不是t的父级
print(s >= t) # 同上
# 显示:False

print(s.union(t)) # s和t的并集,返回一个新的 set 包含 s 和 t 中的每一个元素
print(s | t) # 同上
# 显示:{3, 'l', 37, 5, 'o', 9, 42, 10, 'x', 'e'}

print(s.intersection(t)) # s和t的交集,返回一个新的 set 包含 s 和 t 中的公共元素
print(s & t) # 同上
# 显示:set()

print(s.difference(t)) # s和t的差集,返回一个新的 set 包含 s 中有但是 t 中没有的元素
print(s - t) # 同上
# 显示:{3, 5, 37, 9, 10, 42}

print(s.symmetric_difference(t)) # 对称差集,返回一个新的 set 包含 s 和 t 中不重复的元素
print(s ^ t) # 同上
# 显示:{3, 'l', 37, 5, 'o', 9, 10, 42, 'x', 'e'}

j = s.copy() # 返回 set “s”的一个浅复制
print(j)
# 显示:{3, 42, 37, 5, 9, 10}