Python开发【第十篇】集合
集合的运算
| & | 交集 |
|---|---|
| | | 并集 |
| - | 补集 |
| ^ | 对称补集 |
| < | 子集 |
| > | 超集 |
例子:
生成两个集合的并集
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开发【第十篇】集合的更多相关文章
- Python开发【第二篇】:初识Python
Python开发[第二篇]:初识Python Python简介 Python前世今生 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏 ...
- Python开发【第一篇】:目录
本系列博文包含 Python基础.前端开发.Web框架.缓存以及队列等,希望可以给正在学习编程的童鞋提供一点帮助!!! Python开发[第一篇]:目录 Python开发[第二篇]:初识Python ...
- Python 学习 第十篇 CMDB用户权限管理
Python 学习 第十篇 CMDB用户权限管理 2016-10-10 16:29:17 标签: python 版权声明:原创作品,谢绝转载!否则将追究法律责任. 不管是什么系统,用户权限都是至关重要 ...
- Python开发【第一篇】:目录
本系列博文包含Python基础.前端开发.Web框架.缓存以及队列等,希望可以给正在学习Python编程的朋友们提供一点帮助! .Python开发[第一篇]:目录 .Python开发[第二篇]:初始P ...
- Python开发【第九篇】:HTML (二)
python[第十四篇]HTML基础 时间:2016-08-08 20:57:27 阅读:49 评论:0 收藏:0 [点我收藏+] 标签: 什么是HTML? H ...
- Python开发【第一篇】基础题目二
1 列表题 l1 = [11, 22, 33] l2 = [22, 33, 44] # a. 获取l1 中有,l2中没有的元素 for i in l1: if i not in l2: # b. 获取 ...
- [Python笔记]第十篇:模块续
requests Python标准库中提供了:urllib等模块以供Http请求,但是,它的 API 太渣了.它是为另一个时代.另一个互联网所创建的.它需要巨量的工作,甚至包括各种方法覆盖,来完成最简 ...
- 跟着老男孩教育学Python开发【第一篇】:初识Python
Python简介 Python前世今生 Python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解 ...
- Python开发【第二篇】:Python基础知识
Python基础知识 一.初识基本数据类型 类型: int(整型) 在32位机器上,整数的位数为32位,取值范围为-2**31-2**31-1,即-2147483648-2147483647 在64位 ...
- Python开发【第一篇】:初识Python
初识python 一.python简介 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解 ...
随机推荐
- Spring 7大模块的解说
先看以下Spring的组成图: 7大模块包括:core.AOP.ORM.DAO.WEB.Context.WebMvc. 1:core:spring的容器,主要组成是BeanFactury.也是Spri ...
- python自增自减?赋值语句返回值?逗号表达式?
咳咳,直接进入正题吧. 自增自减(++/--),以及赋值语句,还有逗号表达式都是在C/C++中常见的运算符或表达式. 熟悉C/C++的小伙伴们都知道,在C/C++中: 自增自减(前缀/后缀)运算符将实 ...
- PythonI/O进阶学习笔记_6.对象引用,可变性和垃圾回收
前言: 没有前言了- -......这系列是整理的以前的笔记上传的,有些我自己都忘记我当时记笔记的关联关系了. 记住以后 笔记记了就是用来复习的!!!不看不就啥用没了吗!!! content: 1.p ...
- 分别设计点类Point和圆类Circle,点类有两个私有数据纵坐标和横坐标;圆类有也两个私有数据圆心和半径,其中圆心是一个点类对象;要求如下所述: (1) 通过构造方法初始化数据成员,数据成员的初始化通过构造方法的参数传递;(2) 分别编写点和圆的输出函数,其中圆的输出包括圆心和半径的输出;点的输出x,y;
题目相对简单: package naizi; public class Circle { //私有成员及构造方法 private Point center; private int r; Circle ...
- Linux 笔记 - 几个常用且重要的命令
博客地址:http://www.moonxy.com Linux 系统中提供了大量的命令,从文件目录管理,用户管理,到系统监控等等,功能非常丰富,但有几个是常用且重要的命令. 1. 命令 grep 作 ...
- Spring Boot 入门之 Cache 篇(四)
博客地址:http://www.moonxy.com 一.前言 Spring Cache 对 Cahce 进行了抽象,提供了 @Cacheable.@CachePut.@CacheEvict 等注解. ...
- python pandas进行条件筛选时出现ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().”
在使用pandas进行条件筛选时,使用了如下的代码: fzd_index=data[(data['实际辐照度']<mi)or(data['实际辐照度']>ma)].index 原本以为,并 ...
- 前端之JavaScript篇
一. 简介 javascript是一门动态弱类型的解释性编程语言, 增强页面动画效果,实现页面与用户之间实时动态的交互. JavaScript有三部分组成: ECMAscript, DOM, BOM ...
- JS实现数组去重的方法
1.使用ES6的Set进行去重 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"&g ...
- Kylin配置Spark并构建Cube
HDP版本:2.6.4.0 Kylin版本:2.5.1 机器:三台 CentOS-7,8G 内存 Kylin 的计算引擎除了 MapReduce ,还有速度更快的 Spark ,本文就以 Kylin ...