Python:集合类型
2024-09-06 08:35:27
概念
无序的,不可随机访问的,不可重复的元素集合
与数学中集合的概念类似,可对其进行相关的运算
集合分为可变集合和非可变集合:set
和 frozenset
定义
可变集合
s = {x1, x2, ......}
s = set(iterable)
集合推导式:类似列表推导式
不可变集合
fs = frozenset(iterable)
:iterable如果是dict的话,只会提取key作为set的元素
同样也可以使用集合推导式:fs = frozen(......)
注意
- 创建一个空集合时,需要使用set()或者frozen(),不能使用
s={}
,否则创建的是一个空字典 - 集合中的元素,必须是可哈希的值(暂时理解为不可变类型)
- 如果集合中的元素值出现重复,则会被合并为一个
3 常用操作
单一集合操作
新增
s.add(x)
删除
s.remove(ele)
:指定删除某个元素,如果没找到,则报错
s.discard(ele)
:指定删除集合中的一个元素,如果没有这个元素,则什么也不干
s.pop(ele)
:随机删除并返回集合中的元素,若集合为空,则返回一个错误
s.clear()
:清空一个集合中的所有元素
修改
元素为不可变类型,不能修改
查询
无法通过索引或者key进行查询
- 通过 for in 进行查询
- 通过迭代器进行访问
不可变集合
不能进行增删改
可以通过for in和迭代器进行访问
集合之间的操作
可变集合与不可变集合混合运算,返回结果类型以运算符左侧为主!
交集
s1.intersection(Iterable)
- 注意:
- 字符串:之判定字符串中的非数字
- 字典:只判定 key
- 注意:
s1 & s2
intersection_update(...)
- 交集计算完毕后,会再次赋值给原对象
- 会更改原对象,所以只适用于可变集合
并集
union()
:返回集合的并集s1 | s2
:符号写法update()
:更新并集
差集
difference()
- 使用符号
-
difference_update()
判定
isdisjoint()
:两个集合是否相交issuperset()
:一个集合是否包含另一个集合issubset()
:一个集合包含于另一个集合
补充
。。。。。。其它运算待整理
最新文章
- 如何试用Office 365 及 SharePoint Online(美版)
- share-jquery
- Android 自定义组件随着手指自动画圆
- X3850 Linux 下DSA日志收集办法
- 在 Visio 中录制宏
- Testing a Redux &; React web application
- WPF中ListBox控件选择多个数据项
- web开发中各种宽高
- Ubuntu命令整理
- Python 爬虫入门(二)——爬取妹子图
- 深入理解OkHttp源码(三)——网络操作
- centos7中bash: maven: 未找到命令... 解决办法
- [持续交付实践] pipeline使用:快速入门
- c# .net WebRequest 始终报域名无法解析
- 【技术分享会】 @第五期 angularjs
- [实战]MVC5+EF6+MySql企业网盘实战(2)——用户注册
- OpenVAS应用实例
- BZOJ4881 线段游戏(二分图+树状数组/动态规划+线段树)
- LeetCode 410——分割数组的最大值
- ACM-百度之星资格赛之Labyrinth——hdu4826
热门文章
- setInterval 和 setTimeout 定时器
- AC3 mantissa quantization and decoding
- CentOS6.10 Nginx无法解析php文件
- IntelliJ IDEA 2017.3尚硅谷-----滚轮修改字体大小
- 修改vsftpd的默认根目录/var/ftp/pub到其他目录
- Apollo安装教程
- Linux实现树莓派3B的国密SM9算法交叉编译——(一)环境部署、简单测试与eclipse工程项目测试
- Angular 使用 frame 加载网络资源显示路径不安全问题
- 陆金所退出市场,我说:趁现在,抓紧离开P2P市场,你赞同吗?
- 简单记录搭建Harbor私服仓库