set
一:集合的定义
#集合一个很大的特点就是元素不重复,因此可以用来进行列表什么的去重
s1 = set() #创建空集合时,只能使用set()
s2 = {1,2,3} #注意区分,这里字典和集合都是大括号。字典:{key:value,key:value,key:value,...} 集合:{元素1,元素2,元素3.....}
二:集合涉及到的符号
#集合涉及到的符号
#in 和 not in 判断元素是否在集合中
s1 = {1,2,3,4}
print(3 in s1) #结果为 True
#is 和 is not 判断集合地址是否相同
s2 = {1,2,3,4}
print(s1 is s2) #结果为 False
#‘==’ 和 ‘!=’ 判断集合内容是否相同
print(s1 == s2) #结果为 True
#接下来是‘+ - * & | ^’号
#'+'号 和 '*'号 不可用
#'-'号 就是求差集,对应的difference()
s1 = {1,2,3,4,5}
s2 = {1,2,3,4,5,6}
s3 = s1 - s2
print(s3) #结果为:set() 所以这里要注意:谁减谁
s4 = s2 - s1
print(s4) #结果为:{6}
s5 = s2.difference(s1)
print(s5) #结果为:{6}
#'&' 交集 intersection()
s1 = {1,2,3,4,5}
s2 = {1,2,3,4,5,6}
s3 = s1 & s2
print(s3) #结果为:{1, 2, 3, 4, 5}
s4 = s1.intersection(s2)
print(s4) #结果为:{1, 2, 3, 4, 5}
#'|' 并集 union()
s1 = {1,2,3}
s2 = {4,5,6}
s3 = s1 | s2
print(s3) #结果为:{1, 2, 3, 4, 5, 6}
s4 = s1.union(s2)
print(s4) #结果为:{1, 2, 3, 4, 5, 6}
#'^' 对称差集 symmetric_difference()
s1 = {1,2,3,4}
s2 = {3,4,5,6}
s3 = s1 ^ s2
print(s3)
s4 = s1.symmetric_difference(s2)
print(s4)
三:python集合函数
#1. len(set) 求集合的长度
#2. max(set) 和 min(set) 求集合中的最大最小值
#3. sorted(list) ---->排序 默认是升序的
# sorted(list,reverse=True) 则为降序
s1 = {1,3,4,5,8,6}
print(len(s1)) #结果为:6
print(max(s1)) #结果为:8
print(min(s1)) #结果为:1
print(sorted(s1)) #结果为:[1, 3, 4, 5, 6, 8]
#4. 强转 set()
l1 = [1,2,3,1]
s1 = set(l1)
print(s1) #结果为: {1, 2, 3} 去掉了重复的元素
四:集合自身的方法
#集合增加元素
#set.add() 是添加一个元素
s1 = {1,2,3}
s1.add(55)
print(s1) #结果为: {1, 2, 3, 55}
#set.update() 可以添加多个元素
s2 = {'谢富中',18,'男'}
s1.update(s2)
print(s1) #结果为: {1, 2, 3, 18, '男', 55, '谢富中'}
##集合删除元素
#set.remove(元素) 如果没有找到,则报错
s1 = {1,2,3,4}
s1.remove(2)
print(s1) #结果为:{1, 3, 4}
s1.remove(5)
print(s1) #结果为:KeyError: 5
#set.discard(元素) 与remove的区别是找不到不会报错
s1 = {1,2,3,4}
s1.discard(2)
print(s1) #结果为:{1, 3, 4}
s1.discard(5)
print(s1) #结果为:{1, 3, 4}
#set.pop() 随机删除一个元素
fruits = {"apple", "banana", "cherry"}
fruits.pop()
print(fruits) #结果为:{'banana', 'apple'} 因为随机,所以结果可能不一样
#set.clear() 清除
s1 = {1,2,3,4}
s1.clear()
print(s1) #结果为:set()