集合的运算

& 交集
| 并集
- 补集
^ 对称补集
< 子集
> 超集

例子:

生成两个集合的并集

s1 = {1,2,3}
s2 = {2,3,4}
s3 = s1|s2
#结果{1,2,3,4}

生成两个集合的交集

s1 = {1,2,3}
s2 = {2,3,4}
s3 = s1&s2
#结果{2,3}

生成两个集合的补集

s1 = {1,2,3}
s2 = {2,3,4}
s3 = s1 - s2
#结果生成s1但不属于s2的所有元素的集合
{1}

生成两个集合的对称补集

s1 = {1,2,3}
s2 = {2,3,4}
s3 = s1 ^ s2
#结果{1,4}

判断一个集合是另一个集合的子集

s1 = {1,2,3}
s2 = {2,3}
s2 < s1
#结果True
s1 > s2
#结果True

集合比较没有比较谁比谁大,而是比较的是谁包含谁

集合是不能比较大小的

in和not in 也同样适用于集合

集合和字典的有点:

in 和not in 运算速度比较快

能用于集合的内建函数

len(x)
max(x)
min(x)
sum(x)
any(x)
all(x)
Python3 集合的方法
方法 意义
S.add(e) 在集合中添加一个新的元素e;如果元素已经存在,则不添加
S.remove(e) 从集合中删除一个元素,如果元素不存在于集合中,则会产生一个KeyError错误
S.discard(e) 从集合S中移除一个元素e,在元素e不存在时什么都不做;
S.clear() 清空集合内的所有元素
S.copy() 将集合进行一次浅拷贝
S.pop() 从集合S中删除一个随机元素;如果此集合为空,则引发KeyError异常
S.update(s2) 等同于 S \
S.difference(s2) S - s2 补集运算,返回存在于在S中,但不在s2中的所有元素的集合
S.difference_update(s2) 等同于 S -= s2
S.intersection(s2) 等同于 S & s2
S.intersection_update(s2) 等同于S &= s2
S.isdisjoint(s2) 如果S与s2交集为空返回True,非空则返回False
S.issubset(s2) 如果S与s2交集为非空返回True,空则返回False
S.issuperset(...) 如果S为s2的子集返回True,否则返回False
S.symmetric_difference(s2) 返回对称补集, 等同于 S ^ s2
S.symmetric_difference_update(s2) 等同于 S ^= s2, 用 S 与 s2 的对称补集更新 S
S.union(s2) 生成 S 与 s2的全集, 等同于 S

集合是可迭代对象

集合推导式

语法:

{表达式 for 临时变量 in 可迭代对象 [if真值表达式]}
#[]代表其中的内容可以省略
L = [1,2,3,4,5]
S = {i**2 for i in L}
print(S)
{1,3,4,16,25}

集合推导式的嵌套等同于列表推导式的嵌套

Python3推导式就三种:

  • 列表推导式
  • 字典推导式
  • 集合推导式

Python3中容器类都可以用for循环来遍历

固定集合

固定集合是不可变的,无序的,含有唯一元素的集合

作用:固定集合可以作为字典的键,还可以作为集合的值

固定集合的构造函数

#创建一个空的固定集合
frozenset()
#用可迭代对象创建一个新的固定集合
frozenset(iterable)
f = frozenset()
f2 = frozenset('hello')

固定集合的运算

& 交集
| 并集
- 补集
^ 对称补集
in 在不在
not in 不在
<
<=
>
>=
==
!=

固定集合的方法

`

s.add(x) 添加
s.remove(x) 删除

Python开发【第十篇】集合的更多相关文章

  1. Python开发【第二篇】:初识Python

    Python开发[第二篇]:初识Python   Python简介 Python前世今生 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏 ...

  2. Python开发【第一篇】:目录

    本系列博文包含 Python基础.前端开发.Web框架.缓存以及队列等,希望可以给正在学习编程的童鞋提供一点帮助!!! Python开发[第一篇]:目录 Python开发[第二篇]:初识Python ...

  3. Python 学习 第十篇 CMDB用户权限管理

    Python 学习 第十篇 CMDB用户权限管理 2016-10-10 16:29:17 标签: python 版权声明:原创作品,谢绝转载!否则将追究法律责任. 不管是什么系统,用户权限都是至关重要 ...

  4. Python开发【第一篇】:目录

    本系列博文包含Python基础.前端开发.Web框架.缓存以及队列等,希望可以给正在学习Python编程的朋友们提供一点帮助! .Python开发[第一篇]:目录 .Python开发[第二篇]:初始P ...

  5. Python开发【第九篇】:HTML (二)

    python[第十四篇]HTML基础 时间:2016-08-08 20:57:27      阅读:49      评论:0      收藏:0      [点我收藏+] 标签: 什么是HTML? H ...

  6. Python开发【第一篇】基础题目二

    1 列表题 l1 = [11, 22, 33] l2 = [22, 33, 44] # a. 获取l1 中有,l2中没有的元素 for i in l1: if i not in l2: # b. 获取 ...

  7. [Python笔记]第十篇:模块续

    requests Python标准库中提供了:urllib等模块以供Http请求,但是,它的 API 太渣了.它是为另一个时代.另一个互联网所创建的.它需要巨量的工作,甚至包括各种方法覆盖,来完成最简 ...

  8. 跟着老男孩教育学Python开发【第一篇】:初识Python

    Python简介 Python前世今生 Python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解 ...

  9. Python开发【第二篇】:Python基础知识

    Python基础知识 一.初识基本数据类型 类型: int(整型) 在32位机器上,整数的位数为32位,取值范围为-2**31-2**31-1,即-2147483648-2147483647 在64位 ...

  10. Python开发【第一篇】:初识Python

    初识python 一.python简介 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解 ...

随机推荐

  1. python time.striptime模块用法

    python time模块中strptime用法 time.strptime(string[, format]) 其中string参数即为要深入的日期字符串.format为格式化的日期字符串. %Y ...

  2. Day 17 软件管理2之搭建本地仓库

    1.列出yum源可用的软件仓库 [root@www.xuliangwei.com ~]# yum repolist [root@www.xuliangwei.com ~]# yum repolist ...

  3. docker安装centos6

    1,获取Centos镜像>docker pull centos:centos6 2,查看镜像运行情况>docker images centos 3,在容器下运行 shell bash> ...

  4. jenkins自动化部署项目3 --设置用户

    我直接设置的admin ,jenkins可以新建多个用户,并赋予不同的权限(TODO) 等后续需要严格规范操作人的时候再补充

  5. [技术栈]C#利用Luhn算法(模10算法)对IMEI校验

    1.Luhn算法(模10算法) 通过查看ISO/IEC 7812-1:2017文件可以看到对于luhn算法的解释,如下图: 算法主要分为三步: 第一步:从右边第一位(最低位)开始隔位乘2: 第二步:把 ...

  6. thymeleaf 将后端绑定数据直接传递js变量

    根据自我需求,thymeleaf可以直接将后端数据传递给js中进行使用,例如: 1.后端接口数据: @Controllerpublic class TestController { @RequestM ...

  7. mac 安装redis及phpredis扩展

    下载phpredis扩展安装包.git clone https://github.com/nicolasff/phpredis.git: 解压后,进入该目录: 依次执行以下操作完成安装: /Appli ...

  8. HashMap 取数算法

    Map,百度翻译给我的解释是映射,在Java编程中,它是存储键值对(key-value)的一种容器,也是Java程序员常用的对象.这篇博客介绍下HashMap的实现:java是面向对象编程语言,jdk ...

  9. 【线性表基础】顺序表和单链表的插入、删除等基本操作【Java版】

    本文表述了线性表及其基本操作的代码[Java实现] 参考书籍 :<数据结构 --Java语言描述>/刘小晶 ,杜选主编 线性表需要的基本功能有:动态地增长或收缩:对线性表的任何数据元素进行 ...

  10. 配置中心-Apollo

    配置中心-Apollo 2019/10/01 Chenxin 配置服务主要有 携程Apollo.百度Disconf.阿里ACM,目前以Apollo用户量最大.适用场景,多用于微服务,与K8S结合好. ...