集合

一、集合的作用

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

原文地址:https://www.cnblogs.com/lz1996/p/11573991.html