集合(set)
集合是一个不重复的无序的,可以使用{} 或者set来表示 {} 有两种意思: 字典、集合 {} 里如果放的是键值对,他就是一个字典,如果{}放的是单个的值,就是一个集合
person = {'name':'zhangsan','age':19} #字典
x = {'hello','world',1} # 集合
# 如果有重复的数据,会自动去除
names = {'zhangsan','lisi','jack','lisi'}
print(names)
# set能不能进行增删改,能,但是一般不用,因为他是无序的,连续打印两次就会发现顺序不固定
增删改
# 增
names.add('ake')
print(names)
# 随机删除一个
# names.pop()
# print(names)
# 删除一个指定的元素
# names.remove("zhangsan")
# print(names)
# union 将多个集合合并生成一个新的集合
# A.update(B) 将B拼接到A里
a = names.union({'刘能','赵四'})
print(a)
names.update({'刘能','赵四'})
# 清空
# names.clear()
print(names)
#set()
# {}表示的是空字典,不是空集合,空集合是使用set()表示
# 因为集合没有下标,所以没有办法根据下标查,因为没有重复,所以所有元素只有一个,
集合的高级用法
# set 支持很多算数运算符
mathematics = {'小明','小红','小刚','小李','小熊','小雷','张三','李四'}
chinese = {'小丽','小明','小红','小李','王三'}
english = {'王五','小明','小刚','小熊','小雷'}
# print(mathematics + chinese) # 不支持加法
print(mathematics - chinese) # A - B 求A和B的差集
print(mathematics & chinese) # A & B 求A和B的交集
print(mathematics | chinese) # A | B 求A和B的并集
print(mathematics ^ chinese) # A ^ B 是所有属于两个集合但不属于二者共有部分的集合。
去重排序
nums = [5,8,9,4,3,2,4,1,6,7]
x = set(nums)
y = list(x)
y.sort(reverse=True)
print(y)