• 集合


    一、集合的作用

    知识点回顾:可变类型是不可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)

      1 >,>=,<,<=
      2 set1={1,2,3,4,5}
      3 set2={1,2,3,4}
      4 print(set1 >= set2)
      5 print(set1.issuperset(set2))
      6 
      7 
      8 set1={1,2,3,4,5}
      9 set2={1,2,3}
     10 print(set1<=set2)
     11 print(set1.issubset(set2))
    View Code

    三、练习

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

     

    四、方法
     
      1 linuxs={'six','wu','dabao'}
      2 linuxs.add('xiaoxiao')#说明set类型的集合是可变类型
      3 linuxs.add([1,2,3])#报错,只能添加不可变类型
      4 print(linuxs)
      5 
      6 # 2.
      7 linuxs={'six','wu','dabao'}
      8 res=linuxs.pop() #不用指定参数,随机删除,并且会有返回值
      9 print(res)
     10 
     11 # 3.
     12 res=linuxs.remove('wupeiqi')#指定元素删除,元素不存在则报错,单纯的删除,没有返回值,
     13 print(res)
     14 
     15 # 4.
     16 res=linuxs.discard('egon1111111111') #指定元素删除,元素不存在不报错,单纯的删除,没有返回值,
     17 
     18 # =========了解部分=========
     19 linuxs={'wupeiqi','egon','susan','hiayan'}
     20 new_set={'xxx','fenxixi'}
     21 linuxs.update(new_set)
     22 print(linuxs)
     23 linuxs.copy()
     24 linuxs.clear()
     25 
     26 
     27 #解压
     28 a,*_={'zzz','sss','xxxx','cccc','vvv','qqq'}
     29 print(a)
     30 
    4. 求出没有同时这两门课程的学员名字集合 View Code

     

     

    归类 :  python相关

  • 相关阅读:
    今天实现了 沿路径移动
    enum类型的本质(转)
    (转)成为优秀技术人员的两点建议
    深入理解 C# 协变和逆变
    web通信
    ajax入门(复习)
    git版本管理工具的使用
    在asp.net 中使用httpmodules对网页进行处理
    asp.net http概念原理复习
    web page复习笔记
  • 原文地址:https://www.cnblogs.com/lz1996/p/11573991.html
Copyright © 2020-2023  润新知