python中集合set的使用(自我总结)

    技术2022-07-10  121

    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()
    Processed: 0.011, SQL: 9