一、集合
集合是序列,可以转换成列表,将{}作为容器的标志,里面多个元素用逗号隔开:{元素1,元素2,元素3···}
可变的,无序
元素的要求:不可变的数据,唯一的
空元组没有意义
x = {} # 空字典
s1 = set() # 空集合
print(type(s1), len(s1))
# 元素不可变
s2 = {10, True, 'abc', (1, 2)}
# s2 = {10,True,'abc',[1,2]} 报错
print(s2)
# 集合无序
print({1, 2, 3} == {1, 3, 2})
# 元组元素唯一,元组自带去重buff
s3 = {1, 2, 3, 1, 2, 3, 1, 1, 1}
#s3 = {1, 2, 3, 1, 2, 3, 1, 1, 1}
print(s3)
# 应用:给元素不可变的序列去重
scores = [89, 23, 49, 89,77,90]
new_scores = list(set(scores))
print(new_scores)
2.数学集合运算:交集、并集、差集、对称差集、子集和真子集
s1 = {1, 2, 3, 4, 5, 6, 7}
s2 = {5, 6, 7, 8, 9}
# 1.交集(&) - 求两个集合的公共部分
result = s1 & s2 # {5, 6, 7}
# 2.并集(|) - 合并两个集合
result = s1 | s2 #{1, 2, 3, 4}
print(result)
# 3.差集(-) - 集合1-集合2 ——>在集合1中去掉 在集合2中 的部分
result = s1 - s2
print(result) # {1, 2, 3, 4, 5, 6, 7, 8, 9}
result = s2 - s1
print(result) #{8, 9}
#4.对称差集(^) -两个集合合并然后去掉公共的部分
print(s1^s2) # {1, 2, 3, 4, 8, 9}