• 数据类型之集合


    一、集合的作用

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

        作用:去重,关系运算

        定义:可以包含多个元素,用逗号分割,集合的元素遵循三个原则:

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

          2.没有重复的元素

          4.无序

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

    二、常用方法

        in 和 not in

        |并集(print(pythons.union(linuxs)))

        &交集(print(pythons.intersection(linuxs)))

        -差集(print(pythons.difference(linuxs)))

        ^对称差集(print(pythons.symmetric_difference(linuxs)))

        ==

        >,>= ,<,<= 父集(issuperset),子集(issuberset)

            

    三、练习

     一.关系运算
      有如下两个集合,pythons是报名python课程的学员名字集合,linuxs是报名linux课程的学员名字集合
      pythons={'alex','egon','yuanhao','wupeiqi','gangdan','biubiu'}
      linuxs={'wupeiqi','oldboy','gangdan'}
      1. 求出即报名python又报名linux课程的学员名字集合
      2. 求出所有报名的学生名字集合
      3. 求出只报名python课程的学员名字
      4. 求出没有同时这两门课程的学员名字集合
    1
    2
    3
    pythons={'haiyan','fank','yaling','lalal','haidong','biubiu'}
    linuxs={'six','wu','dabao'}
    # 1. 求出即报名python又报名linux课程的学员名字集合
    1
    2
    pythons={'haiyan','fank','yaling','lalal','haidong','biubiu'}
    linuxs={'six','wu','dabao'}
    1
    2
      print(pythons & linuxs)
    # 2. 求出所有报名的学生名字集合
    1
    2
    pythons={'haiyan','fank','yaling','lalal','haidong','biubiu'}
    linuxs={'six','wu','dabao'}
    1
    2
      print(pythons | linuxs)
    # 3. 求出只报名python课程的学员名字
    1
    2
    pythons={'haiyan','fank','yaling','lalal','haidong','biubiu'}
    linuxs={'six','wu','dabao'}
    1
    2
    print(pythons - linuxs)
    # 4. 求出没有同时这两门课程的学员名字集合
    1
    2
    pythons={'haiyan','fank','yaling','lalal','haidong','biubiu'}
    linuxs={'six','wu','dabao'}
    1
    print(pythons ^ linuxs)

      四、方法

    1
    # ========掌握部分=======
    1
    linuxs={'six','wu','dabao'}
    1
    2
    3
    4
    5
    linuxs.add('xiaoxiao')#说明set类型的集合是可变类型
    linuxs.add([1,2,3])#报错,只能添加不可变类型
    print(linuxs)
     
    # 2.
    1
    linuxs={'six','wu','dabao'}
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    res=linuxs.pop() #不用指定参数,随机删除,并且会有返回值
    print(res)
    # 3.
    res=linuxs.remove('wupeiqi')#指定元素删除,元素不存在则报错,单纯的删除,没有返回值,
    print(res)
    # 4.
    res=linuxs.discard('egon1111111111'#指定元素删除,元素不存在不报错,单纯的删除,没有返回值,
     
     
    # =========了解部分=========
    linuxs={'wupeiqi','egon','susan','hiayan'}
    new_set={'xxx','fenxixi'}
    linuxs.update(new_set)
    print(linuxs)
    linuxs.copy()
    linuxs.clear()
     
     
     
    #解压
     
    a,*_={'zzz','sss','xxxx','cccc','vvv','qqq'}
    print(a)  
  • 相关阅读:
    Java CodeForces 1230A
    基于Lucene的全文检索实践
    错误解决:ElasticSearch SearchResponse的Hits[]总是比totalHits少一条记录
    Java CodeForces 266A
    jQuery 幻灯片插件 OwlCarousel22.3.4 使用
    由于找不到 MSVCP100.dll,无法继续执行代码。重新安装程序可能会解决此问题。
    idea 单行注释,紧跟代码第一列
    TrayPwrD3 电脑一直处于使用独显的状态
    ubuntu20.04 域名解析暂时失败
    jQuery 幻灯片插件 owl_carousev1.31 使用
  • 原文地址:https://www.cnblogs.com/chairlin/p/12322953.html
Copyright © 2020-2023  润新知