Python中集合类型(set)学习小结


Posted in Python onJanuary 28, 2015

set 是一个无序的元素集合,支持并、交、差及对称差等数学运算, 但由于 set 不记录元素位置,因此不支持索引、分片等类序列的操作。

初始化

s0 = set()

d0 = {}

s1 = {0}

s2 = {i % 2 for i in range(10)}

s = set('hi')

t = set(['h', 'e', 'l', 'l', 'o'])

print(s0, s1, s2, s, t, type(d0))

运行结果:
set() {0} {0, 1} {'i', 'h'} {'e', 'o', 'l', 'h'} <class 'dict'>

提示
1.s0、d0:使用 {} 只能创建空字典,创建空集必须用 set();
2.ss、sl:set 中的元素是 无序不重复 的,可以利用这个特点去除列表中的重复元素。

运算操作

print(s.intersection(t), s & t)  # 交集

print(s.union(t), s | t)   # 并集 

print(s.difference(t), s - t)  # 差集 

print(s.symmetric_difference(t), s ^ t) # 对称差集 

print(s1.issubset(s2), s1 <= s2) # 子集

print(s1.issuperset(s2), s1 >= s2)      # 包含

运行结果:

{'h'} {'h'}

{'l', 'h', 'i', 'o', 'e'} {'l', 'h', 'i', 'o', 'e'}

{'i'} {'i'}

{'i', 'l', 'o', 'e'} {'i', 'l', 'o', 'e'}

True True

False False

提示
1.非运算符的方法接受任何可迭代对象作为参数,如 s.update([0, 1]);
2.其他等价操作: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 = {0}

print(s, len(s))   # 获取集合中的元素的总数

s.add("x")         # 添加一个元素

print(s)

s.update([1,2,3])  # 添加多个元素

print(s, "x" in s) # 成员资格测试

s.remove("x")      # 去掉一个元素

print(s, "x" not in s)  

s.discard("x")     # 如果集合存在指定元素,则删除该元素

c = s.copy()       # 复制集合     

print(s, s.pop())  # 弹出集合中的一个不确定元素,如果原集合为空则引发 KeyError

s.clear()          # 删除集合中的元素

print(s, c)

运行结果:
{0} 1

{0, 'x'}

{0, 'x', 1, 2, 3} True

{0, 1, 2, 3} True

{1, 2, 3} 0

set() {0, 1, 2, 3}
Python 相关文章推荐
在Python中使用swapCase()方法转换大小写的教程
May 20 Python
Python的for和break循环结构中使用else语句的技巧
May 24 Python
利用Python生成文件md5校验值函数的方法
Jan 10 Python
python实现堆和索引堆的代码示例
Mar 19 Python
python flask中静态文件的管理方法
Mar 20 Python
正确理解Python中if __name__ == '__main__'
Jan 24 Python
详解Python sys.argv使用方法
May 10 Python
解决django同步数据库的时候app models表没有成功创建的问题
Aug 09 Python
在jupyter notebook中调用.ipynb文件方式
Apr 14 Python
Python过滤掉numpy.array中非nan数据实例
Jun 08 Python
python如何爬取动态网站
Sep 09 Python
这样写python注释让代码更加的优雅
Jun 02 Python
Python中使用装饰器和元编程实现结构体类实例
Jan 28 #Python
Python实现Const详解
Jan 27 #Python
python映射列表实例分析
Jan 26 #Python
Python操作MySQL简单实现方法
Jan 26 #Python
Python中的is和id用法分析
Jan 26 #Python
Python的批量远程管理和部署工具Fabric用法实例
Jan 23 #Python
推荐11个实用Python库
Jan 23 #Python
You might like
mysql 中InnoDB和MyISAM的区别分析小结
2008/04/15 PHP
Windows下XDebug 手工配置与使用说明
2010/07/11 PHP
Uncaught exception com_exception with message Failed to create COM object
2012/01/11 PHP
初品cakephp 入门基础
2012/02/16 PHP
关于PHP开发的9条建议
2015/07/27 PHP
Yii2框架可逆加密简单实现方法
2017/08/25 PHP
基于JQuery的一个简单的鼠标跟随提示效果
2010/09/23 Javascript
jQuery中removeData()方法用法实例
2014/12/27 Javascript
JavaScript之Object类型介绍
2015/04/01 Javascript
jquery实现的缩略图预览滑块实例
2015/06/25 Javascript
详解js图片轮播效果实现原理
2015/12/17 Javascript
jQuery实现只允许输入数字和小数点的方法
2016/03/02 Javascript
安装vue-cli报错 -4058 的解决方法
2017/10/19 Javascript
浅谈vue-cli 3.0.x 初体验
2018/04/11 Javascript
koa2 用户注册、登录校验与加盐加密的实现方法
2019/07/22 Javascript
vue 中url 链接左边的小图标更改问题
2019/12/30 Javascript
jquery实现拖拽添加元素功能
2020/12/01 jQuery
[02:37]2018DOTA2亚洲邀请赛赛前采访-EG篇
2018/04/03 DOTA
[01:03:50]DOTA2-DPC中国联赛 正赛 CDEC vs DLG BO3 第二场 2月7日
2021/03/11 DOTA
Python入门篇之函数
2014/10/20 Python
Python简单进程锁代码实例
2015/04/27 Python
python自定义解析简单xml格式文件的方法
2015/05/11 Python
Python打印斐波拉契数列实例
2015/07/07 Python
Python模拟登陆淘宝并统计淘宝消费情况的代码实例分享
2016/07/04 Python
Python socket网络编程TCP/IP服务器与客户端通信
2017/01/05 Python
使用python脚本实现查询火车票工具
2018/07/19 Python
Python 面向对象之封装、继承、多态操作实例分析
2019/11/21 Python
基于Python生成个性二维码过程详解
2020/03/05 Python
python支持多继承吗
2020/06/19 Python
Python Web项目Cherrypy使用方法镜像
2020/11/05 Python
Selenium结合BeautifulSoup4编写简单的python爬虫
2020/11/06 Python
Trunki英国官网:儿童坐骑式行李箱
2017/05/30 全球购物
Under Armour瑞典官方网站:美国高端运动科技品牌
2018/11/21 全球购物
公司给客户的感谢信
2015/01/23 职场文书
自我推荐信怎么写
2015/03/24 职场文书
董事长秘书工作总结
2015/08/14 职场文书