• python全栈开发-Day5 集合


    一、首先按照以下几个点展开对集合的学习

    #一:基本使用

      1 、用途

      2 、定义方式

      3 、常用操作+内置的方法

    #二:该类型总结

      1、 存一个值or存多个值 只能存一个值 可以存多个值,值都可以是什么类型

      2 、有序or无序

      3 、可变or不可变 !!!可变:值变,id不变。可变==不可hash !!!不可变:值变,id就变。不可变==可hash

    二、集合

    #作用:去重,关系运算,

    # 知识点回顾 可变类型是不可hash类型 不可变类型是可hash类型

    #定义集合:

       集合:可以包含多个元素,用逗号分割,

       集合的元素遵循三个原则:

      1:每个元素必须是不可变类型(可hash,可作为字典的key)

      2:   没有重复的元素

      3:无序

      注意集合的目的是将不同的值存放到一起,不同的集合间用来做关系运算,无需纠结于集合中单个值

    #优先掌握的操作:

      #1、长度len

      #2、成员运算in和not in

      #3、&交集

    1 stus_linux={'alex','egon','张全蛋','李铁蛋','oldboy'}
    2 stus_python={'李二丫','wxx','liudehua','alex','egon'}
    3 
    4 #既报名linux又报名python的学生:交集
    5 print(stus_linux & stus_python)
    6 print(stus_linux.intersection(stus_python))
    7 
    8 #  值都是   {'alex', 'egon'}

      #4、|合集

    1 stus_linux={'alex','egon','张全蛋','李铁蛋','oldboy'}
    2 stus_python={'李二丫','wxx','liudehua','alex','egon'}
    3 
    4 #所有的学生:并集
    5 print(stus_linux | stus_python)
    6 print(stus_linux.union(stus_python))
    7 
    8 #值都是
    9 #{'oldboy', 'egon', 'liudehua', '张全蛋', '李二丫', 'wxx', 'alex', '李铁蛋'}

      #5、-差集

     1 stus_linux={'alex','egon','张全蛋','李铁蛋','oldboy'}
     2 stus_python={'李二丫','wxx','liudehua','alex','egon'}
     3 
     4 #只报名linux,没有报名python的:差集
     5 print(stus_linux - stus_python)
     6 print(stus_linux.difference(stus_python))
     7 
     8 #值为 {'oldboy', '李铁蛋', '张全蛋'}
     9 
    10 
    11 #只报名python,没有报名linux的:差集
    12 print(stus_python -  stus_linux)
    13 print(stus_python.difference(stus_linux))
    14 
    15 #值为{'liudehua', '李二丫', 'wxx'}

      #6、^对称差集

    1 stus_linux={'alex','egon','张全蛋','李铁蛋','oldboy'}
    2 stus_python={'李二丫','wxx','liudehua','alex','egon'}
    3 
    4 # 没有同时报名两门课程的学生姓名:交叉补集
    5 print(stus_linux ^ stus_python)
    6 print(stus_linux.symmetric_difference(stus_python))
    7 
    8 
    9 #值都为 {'李铁蛋', '李二丫', 'oldboy', 'liudehua', '张全蛋', 'wxx'}

      #7、查看

    1 s1={1,'a','b','c','d'}
    2 
    3 for item in s1:
    4     print(item)
    5 
    6 #值的排序是随机的是上面五个元素的随机排序

      #8、增加

     1 s1={'a','b','c'}
     2 s1.add('d') # 一次添加一个值
     3 s1.add(4)
     4 print(s1)
     5  
     6 #值为{'a','b','c','d'}
     7 s1.update({3,4,5}) #一次添加多个值
     8 print(s1)
     9 
    10 #值为{'a','b','c','d',3,4,5}   这里元素的顺序都是随机的

      #9、删除

     1 s1={'a','b','c'}
     2 #s1.discard() ## 当删除的元素不存在的时候,不会报错
     3 s1.discard(4)
     4 print(s1)            #值为{'a','b','c'}
     5 
     6 #s1.remove() # 当删除的元素不存在的时候,报错
     7 s1.remove(4)     #报错
     8 
     9 s1.pop() #随机取走一个元素
    10 res=s1.pop()
    11 print(res)       #值是随机的

      #10、父集,子集:

    1 #父集:爹包含儿子
    2 # s1={1,2,3}
    3 # s2={1,2}
    4 s1 > s2# 代表s1包含s2,s1是s2父集
    5 s2 < s1 # s2是s1子集
  • 相关阅读:
    《30天自制操作系统》17_day_学习笔记
    《30天自制操作系统》18_day_学习笔记
    湖大OJ-实验E----可判定的DFA的空问题
    湖大OJ-实验C----NFA转换为DFA
    《30天自制操作系统》16_day_学习笔记
    《30天自制操作系统》19_day_学习笔记
    《30天自制操作系统》15_day_学习笔记
    《30天自制操作系统》14_day_学习笔记
    [Leetcode Week11]Kth Largest Element in an Array
    [Leetcode Week10]Minimum Time Difference
  • 原文地址:https://www.cnblogs.com/ManyQian/p/8624946.html
Copyright © 2020-2023  润新知