集合的概念

集合(set)是一个无序的不重复元素序列。

可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。

集合就是一个不带key值的字典,就和我们高中的集合一样

创建格式:

parame = {value01,value02,...}

或者:

set([1])

也就是用set创建时:里面需要加上中括号,也就是变成列表才行

so={1,2,3,5,7}
se={1,2,3,5,9}
#se=set([])

并集

#a=so|se
a=se.union(so)
print(a)

set.union()方法

union() 方法返回两个集合的并集,即包含了所有集合的元素,重复的元素只会出现一次。

语法:

set.union(set1, set2...)

set1 -- 必需,合并的目标集合

set2 -- 可选,其他要合并的集合,可以多个,多个使用逗号 , 隔开。

特点:多个集合合并

x = {"a", "b", "c"}
y = {"f", "d", "a"}
z = {"c", "d", "e"} result = x.union(y, z) print(result)

交集

#a=so&se
a=se.intersection(so)
print(a)

set.intersection() 交集

intersection() 方法用于返回两个或更多集合中都包含的元素,即交集。

语法:

vset.intersection(set1, set2 ... etc)

set1 -- 必需,要查找相同元素的集合

set2 -- 可选,其他要查找相同元素的集合,可以多个,多个使用逗号 , 隔开

计算多个集合的交集:

x = {"a", "b", "c"}
y = {"c", "d", "e"}
z = {"f", "g", "c"} result = x.intersection(y, z) print(result)

补集

只支持减号,没有加号,也没‘*’号

a=se-so
print(a)
a=so-se
print(a)
#交换顺序结果不同

不同时包含的元素

a=se^so
print(a)

增加

set.add() 一个

一次增加一个值

se.add(01)
print(se)

set.update([values,.....]) 多个

se.update([1,2,45345,2342342342342])
print(se)

删除单个值

set.remove(value)

特点:删除不存在的值会报错

se.remove(1)
print(se)

set.discard(value)

不存在不报错

se.discard(1)

弹出最后一个值

set.pop()

特点:不能指定弹出的位置

a=se.pop()
print(se)
print(a)

差集

difference() 方法用于返回集合的差集,即返回的集合元素包含在第一个集合中,但不包含在第二个集合(方法的参数)中。

语法:

set.difference(set)

x = {"apple", "banana", "cherry"}
y = {"google", "microsoft", "apple"} z = y.difference(x) print(z)

py教学之集合的更多相关文章

  1. 012.Python的字典和集合的相关函数

    一 字典的相关函数 1.1 增函数 dictvar = {"a":1,"b":2} dictvar["c"] = 3 print(dictv ...

  2. Python Unittest 自动化单元测试框架Demo

    python 测试框架(本文只涉及 PyUnit) https://wiki.python.org/moin/PythonTestingToolsTaxonomy 环境准备 首先确定已经安装有Pyth ...

  3. POJ - 1182 食物链 并查集经典

    思路:设r(x)表示节点x与根结点的关系,px表示x的根结点.记录每个节点与其父节点的关系,就能很方便知道每个节点以及和它的父节点的关系. struct node{ int par; //父亲节点 i ...

  4. 结构化您的Python工程

    我们对于"结构化"的定义是您关注于怎样使您的项目最好地满足它的对象性,我们 需要去考虑如何更好地利用Python的特性来创造简洁.高效的代码.在实践层面, "结构化&qu ...

  5. tensorflow下基于DNN实现实时分辨人脸微表情

    参加学校的国创比赛的时候,我们小组的项目有一部分内容需要用到利用摄像头实现实时检测人脸的表情,因为最近都在看深度学习方面的相关知识,所以就自己动手实现了一下这个小Demo.参考网上的资料,发现大部分是 ...

  6. python 全栈开发,Day29(昨日作业讲解,模块搜索路径,编译python文件,包以及包的import和from,软件开发规范)

    一.昨日作业讲解 先来回顾一下昨日的内容 1.os模块 和操作系统交互 工作目录 文件夹 文件 操作系统命令 路径相关的 2.模块 最本质的区别 import会创建一个专属于模块的名字, 所有导入模块 ...

  7. os 模块 模块与包的初始

    os模块是与操作系统交互的模块之前我们也用过os模块就是更改文件的名字的时候 我们如果用os求求文件夹是不行的  可以求文件  因为文件夹在python中最大就是4090个字节 所以你必须求出文件夹内 ...

  8. python-unittest学习2--生成报告

    上个是小练习  ,这次将unittest模块化一下,也就是吧用例放在case目录下,start放在bin目录下面 -------------------start------------------- ...

  9. 模块(python的标准库)

    在python中叫做模块,其他语言中叫做类库.python中的模块有三种:内置模块,第三方模块,自定义模块. 模块的使用: 先导入,import+模块名,再使用,模块名+函数名() .py文件与.py ...

  10. python学习笔记:模块——自定义模块的3种导入方式

    一.定义 模块就是用一堆的代码实现了一些功能的代码的集合,通常一个或者多个函数写在一个.py文件里,而如果有些功能实现起来很复杂,那么就需要创建n个.py文件,这n个.py文件的集合就是模块.如果不懂 ...

随机推荐

  1. 图文详解丨iOS App上架全流程及审核避坑指南

    App Store作为苹果官方的应用商店,审核严格周期长一直让用户头疼不已,很多app都"死"在了审核这一关,那我们就要放弃iOS用户了吗?当然不是!本期我们从iOS app上架流 ...

  2. 重大发现,AQS加锁机制竟然跟Synchronized有惊人的相似

    在并发多线程的情况下,为了保证数据安全性,一般我们会对数据进行加锁,通常使用Synchronized或者ReentrantLock同步锁.Synchronized是基于JVM实现,而Reentrant ...

  3. Java多线程的几种创建方式

    方法一:继承Thread类,重写run方法,直接调用start方法开启线程. /** * 继承Thread类,直接调用start方法开启线程. * @author LuRenJia */ public ...

  4. ui自动化测试数据复原遇到的坑——2、python连接informix时pytest报致命错误Windows fatal exception: access violation

    python连接informix只能通过jdbc(需要先部署java环境.我试过到IBM上下载ODBC但结局是失败的),在执行pytest时发现有一串报错(大致是下面的这样): Windows fat ...

  5. [CS61A] Lecture 1&2&3. Introduction&Functions&Control

    [CS61A] Lecture 1&2&3. Introduction&Functions&Control 前言 CS61A是加州大学伯克利分校一门计算机专业课程,用于 ...

  6. 不借助idea开发工具构建一个Javaweb项目

    不借助idea开发工具构建一个Javaweb项目 目录结构 webappsroot |----------WEB-INF |----------classes(存放字节码) |----------li ...

  7. gorm-sqlite

    package mainimport ( "encoding/json" "fmt" "github.com/jinzhu/gorm" &q ...

  8. hashlib加密模块、加密补充说明、subprocess模块、logging日志模块

    目录 hashlib加密模块 加密补充说明 subprocess模块 logging日志模块 日志的组成 日志配置字典 hashlib加密模块 1.何为加密 将明文数据处理成密文数据 让人无法看懂 2 ...

  9. 2流高手速成记(之九):基于SpringCloudGateway实现服务网关功能

    咱们接上回 上一节我们基于Sentinel实现了微服务体系下的限流和熔断,使得整个微服务架构的安全性和稳定性上升了一个台阶 篇尾我们引出了一个问题,众多的微服务节点,我们如何部署才能满足客户端简洁高效 ...

  10. .NET性能优化-ArrayPool同时复用数组和对象

    前两天在微信后台收到了读者的私信,问了一个这样的问题,由于私信回复有字数和篇幅限制,我在这里统一回复一下.读者的问题是这样的: 大佬您好,之前读了您的文章受益匪浅,我们有一个项目经常占用 7-8GB ...