Python 进阶——重访 set
成员查询在 list 是线性级的,而在 set 是常数级
成员的查询,list 和 set 都并未提供相关成员函数予以支持,而是使用 in
+条件判断:
In [1]: from random import randrangeIn [2]: L = [randrange(10000) for _ in range(1000)]In [3]: 42 in L
Out[3]: TrueIn [4]: S = set(L)In [5]: 42 in S
Out[5]: True
set 操作的数学含义
s | t:并集
s & t:交集
s - t:差集
s ^ t:对称差集,等价于 (s|t)-(s&t)
set 与 frozenset
set 与 frozenset 的关系,如同 list 与 tuple 的关系,即 set 和 list 是可变的,frozenset 与 tuple 是不可变的。本质上是二者成员函数的支持不同,也即 frozenset 和 tuple 不支持更易型的操作。
运算符重载
- s.issubset(t):s <= t
- s.issuperset(t):s >= t
- s.union(t):s|t
- s.intersection(t):s&t
- s.difference(t):s-t
- s.symmetric_difference(t):s^t
注意,s.union(t), s.intersection(t), s.difference(t), s.symmetric_difference(t) 都是非更易型操作,也即都不对 s、t 的值进行修改,将操作后的结果作为返回值进行返回。
- s.update(t):s |= t
- s.intersection_update(t):s &= t
- s.difference_update(t):s -= t
- s.symmetric_difference_update(t):s ^= t
s.union(t) 与 s | t 的区别
s.union(t) t 的类型可以为 dict(将字典的全部 keys 加入集合中,因为字典的 key 也是不允许把重复的),s | t t 的类型不可以为 dict。
对 s.update(t)、s |= t 也是同样的要求;
Python 进阶——重访 set相关推荐
- Python 进阶——重访 list (二)
Python 进阶--重访 list 1. list 如果以切片的形式访问,不会提示 index out of range >> x = [1, 2, 3] >> x[4] I ...
- Python 进阶 —— 重访 tuple
# tuple + tuple >> (1, ) + (2, 3) (1, 2, 3)>> x = x.reshape((1, ) + x.shape) # (150, 150 ...
- Python 进阶——重访 list
(1)如果 list 的元素各不重复,如从 set 而来, 可建立 value 与 index 的一一映射(list 中元素存在重复时,l.index[val] 返回的是第一个符合的索引): l[i] ...
- Python进阶之递归函数的用法及其示例
作者 | 程序员adny 责编 | 徐威龙 封图| CSDN│下载于视觉中国 出品 | AI科技大本营(ID:rgznai100) 本篇文章主要介绍了Python进阶之递归函数的用法及其示例,现在分 ...
- Python自学路线图之Python进阶
Python自学路线图的第二个阶段是Python进阶学习,自学完后需要掌握的Python技能: 1.自学Linux操作系统,熟练使用Linux操作系统: 自学网络编程,掌握网络编程相关技术, 能够实现 ...
- 如果只推荐一本 Python 进阶的书,我要 Pick 它!
作者 | 豌豆花下猫 今年二月初,我偶然看到了一条推特: <流畅的Python>一书的作者发布了一条激动人心的消息:他正在写作第二版! 如果要票选最佳的 Python 进阶类书目,这本书肯 ...
- 106页的《Python进阶》中文版(附下载)!
点击上方"AI遇见机器学习",选择"星标"公众号 重磅干货,第一时间送 推荐一本对Python感兴趣的书籍<Python进阶>,是<Inter ...
- Python进阶6——序列操作
1.序列的拼接和复制 Python中使用+对序列进行拼接,使用*对序列进行复制 s=str(1234) l=list(range(2,13)) print(s,l) print('---------- ...
- Python 进阶之路 (九) 再立Flag, 社区最全的itertools深度解析(上)
前言 大家好,今天想和大家分享一下我的itertools学习体验及心得,itertools是一个Python的自带库,内含多种非常实用的方法,我简单学习了一下,发现可以大大提升工作效率,在sf社区内没 ...
最新文章
- mysql concat 去掉重复_mysql - concat字段具有共同的重复密钥,并删除那些重复项,从而留下一个 - 堆栈内存溢出...
- 初学js----------一些API
- java 中sun.net.ftp_开发FTP不要使用sun.net.ftp.ftpClient
- semantic ui要装什么才能使用
- 科普:Windows下Netcat使用手册
- 男人到了中年,还是没钱没人脉,就越要有这3种心理,总会有出息
- python-opencv中的cv.CreateImage函数的参数问题
- python opencv 找到圆点标定板所有点后通过距离找四个角点2
- qq拼音输入法下载|qq拼音输入法纯净版下载
- 【Linux应用层】防火墙iptables命令
- 【Love2d从青铜到王者】第七篇:Love2d之对象
- CC3200学习——blinky资料
- Java 简单的摇骰子游戏:案例
- End-to-end/hand-crafted的含义(深度学习)
- Xmind怎么打开?在线转换成PNG,JPG图片格式,无需安装其他软件
- 《哲学史讲演录》——思辨节选---塞诺芬尼 、巴门尼德
- Python3.x爬虫下载网页图片
- 使用Keras以inceptionV3作为主干网络进行迁移学习遇到的问题
- C语言——第三章:C语言程序设计
- 通过ROS控制真实机械臂(15) --- 视觉抓取之手眼标定
热门文章
- 集群之间数据拷贝distcp性能的调优
- git回退历史版本无法上传_Git实用教程(四) | Git本地库操作(查看提交历史、版本前进回退)...
- 审计计算机考试报名,审计业务考试计算机(5页)-原创力文档
- webmin mysql_MySQL+Webmin轻松创建数据库
- dapper 调用 存储过程返回值_数据库事务、存储过程、函数以及触发器之间的区别和联系...
- C#调用open cv函数
- OCR:深度学习-目标检测-超详细图解Faster R-CNN
- void muse.each(object, function)
- Bin Packing 装箱问题——NPH问题的暴力枚举 状压DP
- 企业面试之LeetCode刷题心得