容器之一 set
set这个平时用的不多,特性是里面的元素不能有重复,其他的基本跟list差不多,详细用法如下:
不过里面只能是单个元素,且是无序,没有索引的用法
# 初始化
s_a = set([1, 2, 3, 4, 5]) # {1, 2, 3, 4, 5}
s_b = set([1, 1, 2, 2, 3, 4, 5]) # 已经将1,2重复的去掉了 {1, 2, 3, 4, 5}
# 获取长度 len
print(len(s_a)) # 5
print(len(s_b)) # 5 已经进行了去重
# 添加元素 update
s_a.add(6) # {1, 2, 3, 4, 5, 6}
s_a.add(6) # 还是上面的内容
s_a.update([5, 6, 7, 8, 9]) # 将list中的元素依次添加到s_a中,并进行去重
print(s_a) # {1, 2, 3, 4, 5, 6, 7, 8, 9}
# 删除元素-remove
s_a.remove(8) # 去除元素8 如果不在里面的元素,会报错
s_a.remove(9) # 去除元素9
print(s_a)
# 判断元素是否存在 in
print(1 in s_a) # True
print(10 in s_a) # False
# 判断集合是否为空
s_a = set([])
if not s_a:
print('set is empty')
else:
print('set is not empty') # 最终输出 set is empty
# 遍历
s_a = set([1, 2, 3, 4, 5])
for i in s_a:
print(i) # 依次输出 1 2 3 4 5
# 集合操作
s_a = set([1, 2, 3, 4, 5])
s_b = set([4, 5, 6, 7, 8])
# 并集
print(s_a | s_b) # {1, 2, 3, 4, 5, 6, 7, 8} 合并去重
print(s_a.union(s_b)) # 效果跟上面一致
# 交集
print(s_a & s_b) # {4, 5}
print(s_a.intersection(s_b)) # 效果跟上面一致
# 差集
print(s_a - s_b) # {1, 2, 3}
print(s_a.difference(s_b))
# 对称差
print(s_a ^ s_b) # {1, 2, 3, 6, 7, 8}
print((s_a | s_b) - (s_a & s_b)) # 结果同以上
print(s_a.symmetric_difference(s_b)) # 结果同以上