集合基本使用-练习-高级使用
集合是一个不重复的无序的数据,可以使用 {} 或者 set 来表示。
{} 有两种意思。
{}里如果放的是键值对,它就是一个字典,如果 {} 放的是单个的值,就是一个集合。
person = {'name': 'zhangsan', 'age': 18} # 字典
x = {'hello', 1, 'good'} # 集合
# 如果有重复的数据,会自动去除
names = {'zhangsan', 'lisi', 'jack', 'tony', 'jack', 'lisi'}
print(names)
#set 能不能进行增删改查
names.add('嵇康') # 添加一个元素
print(names)
names.pop() # 删除一个元素
# print(names)
names.remove('zhangsan') # 删除一个指定的元素
print(names)
#union 将多个集合合并成一个新的集合
y = names.union({'刘能', '赵四'})
print(y)
#A.update(B) #将B拼接到A里
names.update({'刘能', '赵四'})
print(names)
# names.clear() # 清空一个集合
# 空集合的的表示方式不是 {} ,{} 表示的一个空字典
# 空集合 set()
# print(names)
去重排序
# 去重排序
nums = [5, 8, 7, 6, 4, 1, 3, 5, 1, 8, 4]
x = set(nums)
y = list(x)
y.sort(reverse=True)
print(y)
高级使用
first = {'李白', '白居易', '李清照', '杜甫', '王昌龄', '王维', '孟浩然', '王安石'}
second = {'李商隐', '杜甫', '李白', '白居易', '岑参', '王昌龄'}
third = {'李清照', '刘禹锡', '岑参', '王昌龄', '苏轼', '王维', '李白'}
# set 支持很多算数运算符
print(first - second) # A - B 求A 和 B 的差集
print(second - first)
print(first & second) # A $ B 求A 和 B 的交集
print(first | second) # A | B 求A 和 B 的并集
print(first ^ second) # A | B 求A 和 B 的差集的并集