一、集合的作用

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

        

>,>=,<,<=
set1={1,2,3,4,5}
set2={1,2,3,4}
print(set1 >= set2)
print(set1.issuperset(set2)) set1={1,2,3,4,5}
set2={1,2,3}
print(set1<=set2)
print(set1.issubset(set2))

三、练习

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

  四、方法

# ========掌握部分=======
 linuxs={'six','wu','dabao'}
linuxs.add('xiaoxiao')#说明set类型的集合是可变类型
linuxs.add([1,2,3])#报错,只能添加不可变类型
print(linuxs) # 2.
 linuxs={'six','wu','dabao'}
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)

  

集合set的更多相关文章

  1. java基础集合经典训练题

    第一题:要求产生10个随机的字符串,每一个字符串互相不重复,每一个字符串中组成的字符(a-zA-Z0-9)也不相同,每个字符串长度为10; 分析:*1.看到这个题目,或许你脑海中会想到很多方法,比如判 ...

  2. .Net多线程编程—并发集合

    并发集合 1 为什么使用并发集合? 原因主要有以下几点: System.Collections和System.Collections.Generic名称空间中所提供的经典列表.集合和数组都不是线程安全 ...

  3. 一起学 Java(三) 集合框架、数据结构、泛型

    一.Java 集合框架 集合框架是一个用来代表和操纵集合的统一架构.所有的集合框架都包含如下内容: 接口:是代表集合的抽象数据类型.接口允许集合独立操纵其代表的细节.在面向对象的语言,接口通常形成一个 ...

  4. 编写高质量代码:改善Java程序的151个建议(第5章:数组和集合___建议75~78)

    建议75:集合中的元素必须做到compareTo和equals同步 实现了Comparable接口的元素就可以排序,compareTo方法是Comparable接口要求必须实现的,它与equals方法 ...

  5. java基础_集合List与Set接口

    List接口继承了Collection的方法  当然也有自己特有的方法向指定位置添加元素   add(索引,添加的元素); 移除指定索引的元素   remove(索引) 修改指定索引的元素   set ...

  6. Java基础Collection集合

    1.Collection是所有集合的父类,在JDK1.5之后又加入了Iterable超级类(可以不用了解) 2.学习集合从Collection开始,所有集合都继承了他的方法 集合结构如图:

  7. 轻量级“集合”迭代器-Generator

    Generator是PHP 5.5加入的新语言特性.但是,它似乎并没有被很多PHP开发者广泛采用.因此,在我们了解PHP 7对Generator的改进之前,我们先通过一个简单却显而易见的例子来了解下G ...

  8. Asp.net MVC 传递数据 从前台到后台,包括单个对象,多个对象,集合

    今天为大家分享下 Asp.net MVC 将数据从前台传递到后台的几种方式. 环境:VS2013,MVC5.0框架 1.基本数据类型 我们常见有传递 int, string, bool, double ...

  9. 这些.NET开源项目你知道吗?.NET平台开源文档与报表处理组件集合(三)

    在前2篇文章这些.NET开源项目你知道吗?让.NET开源来得更加猛烈些吧 和这些.NET开源项目你知道吗?让.NET开源来得更加猛烈些吧!(第二辑)中,大伙热情高涨.再次拿出自己的私货,在.NET平台 ...

  10. python 数据类型 --- 集合

    1. 注意列表和集合的区别 set 列表表现形式: list_1 = [1,3,4];  集合表现形式:set_1= set() list_1 = [1,2,3,4,23,4,2] print(lis ...

随机推荐

  1. DOCKER 从入门到放弃(三)

    使用docker create [image-name] 创建一个容器 创建一个nginx镜像的容器,由于没有指定各项参数,容器实用默认参数,创建后并不会启动,并将容器的ID输出到终端,如果本地没有镜 ...

  2. Student implements java.io.Serializable

    package JBJADV003; public class Student implements java.io.Serializable { private String name; priva ...

  3. vijos1056题解

    题目: 桌面上放了N个平行于坐标轴的矩形,这N个矩形可能有互相覆盖的部分,求它们组成的图形的面积. 在翻题目时,偶然发现了这道标号为WA的题目. 原来,以前我把一中培训的代码发了上去,却WA了4个点, ...

  4. win10 Internet Explorer 11 停止工作处理

    win10 Internet Explorer 11 停止工作处理:

  5. JavaScript一个函数式编程-------求标准差

    利用JavaScript中的map函数和reduce函数实现函数式编程. 注意: 输出都在浏览器的控制台中. 代码如下: <script type="text/javascript&q ...

  6. html中的锚点

    一.页面内跳转的锚点设置 页面内的跳转需要两步: 方法一: ①:设置一个锚点链接<a href="#miao">去找喵星人</a>:(注意:href属性的属 ...

  7. es6的新内容

    前端学习总结(十八)ES6--新一代的javascript 发表于2016/6/11 21:44:27  2733人阅读 分类: javascript 简介 ECMAScript 6(以下简称ES6) ...

  8. sleep() 和 wait() 有什么区别?

    sleep()方法是使线程停止一段时间的方法.在sleep 时间间隔期满后,线程不一定立即恢复执行.这是因为在那个时刻,其它线程可能正在运行而且没有被调度为放弃执行,除非"醒来"的 ...

  9. 学习笔记TF026:多层感知机

    隐含层,指除输入.输出层外,的中间层.输入.输出层对外可见.隐含层对外不可见.理论上,只要隐含层节点足够多,只有一个隐含层,神经网络可以拟合任意函数.隐含层越多,越容易拟合复杂函数.拟合复杂函数,所需 ...

  10. 51nod_1831: 小C的游戏(Bash博弈 找规律)

    题目链接 此类博弈不需要考虑sg函数,只需要确定必胜态和必败态,解题思路一般为打败先打表找规律,而后找规律给出统一的公式.打表方式:给定初始条件(此题中为ok[0]=ok[1]=0),然后从低到高枚举 ...