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 相关文章推荐
pyramid配置session的方法教程
Nov 27 Python
python实现批量改文件名称的方法
May 25 Python
详解Python中的元组与逻辑运算符
Oct 13 Python
python使用ddt过程中遇到的问题及解决方案【推荐】
Oct 29 Python
Python使用numpy模块实现矩阵和列表的连接操作方法
Jun 26 Python
浅谈pytorch grad_fn以及权重梯度不更新的问题
Aug 20 Python
python通过nmap扫描在线设备并尝试AAA登录(实例代码)
Dec 30 Python
Pytorch保存模型用于测试和用于继续训练的区别详解
Jan 10 Python
python 已知一个字符,在一个list中找出近似值或相似值实现模糊匹配
Feb 29 Python
Django+Celery实现动态配置定时任务的方法示例
May 26 Python
学会迭代器设计模式,帮你大幅提升python性能
Jan 03 Python
教你漂亮打印Pandas DataFrames和Series
May 29 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
留言板翻页的实现详解
2006/10/09 PHP
PHP base64+gzinflate压缩编码和解码代码
2008/10/03 PHP
PHP命名空间(Namespace)的使用详解
2013/05/04 PHP
PHP实现导出excel数据的类库用法示例
2016/10/15 PHP
CI框架常用函数封装实例
2016/11/21 PHP
js解析xml字符串和xml文档实现原理及代码(针对ie与火狐)
2013/02/02 Javascript
js弹出模式对话框,并接收回传值的方法
2013/03/12 Javascript
node.js中的fs.fchown方法使用说明
2014/12/16 Javascript
浅析javascript中的DOM
2015/03/01 Javascript
使用JQuery实现的分页插件分享
2015/11/05 Javascript
jQuery的文档处理程序详解
2016/05/10 Javascript
使用bootstrap实现多窗口和拖动效果
2016/09/22 Javascript
原生JS和jQuery操作DOM对比总结
2017/01/19 Javascript
微信小程序调用PHP后台接口 解析纯html文本
2017/06/13 Javascript
JS中图片压缩的方法小结
2017/11/14 Javascript
vue实现a标签点击高亮方法
2018/03/17 Javascript
浅谈Vue.js 中的 v-on 事件指令的使用
2018/11/25 Javascript
vueScroll实现移动端下拉刷新、上拉加载
2019/03/22 Javascript
JavaScript中的ES6 Proxy的具体使用
2019/06/16 Javascript
Vuex,iView UI面包屑导航使用扩展详解
2019/11/04 Javascript
vue prop传值类型检验方式
2020/07/30 Javascript
[55:44]完美世界DOTA2联赛决赛 FTD vs Phoenix 第二场 11.08
2020/11/11 DOTA
python二分法实现实例
2013/11/21 Python
Python中input和raw_input的一点区别
2014/10/21 Python
Python多进程与服务器并发原理及用法实例分析
2018/08/21 Python
python matplotlib实现双Y轴的实例
2019/02/12 Python
python 使用while写猜年龄小游戏过程解析
2019/10/07 Python
python利用paramiko实现交换机巡检的示例
2020/09/22 Python
html5实现九宫格抽奖可固定抽中某项奖品
2020/06/15 HTML / CSS
银行出纳岗位职责
2013/11/25 职场文书
医院2014国庆节活动策划方案
2014/09/21 职场文书
2014年终个人工作总结
2014/11/07 职场文书
小学班主任经验交流材料
2014/12/16 职场文书
安徽导游词
2015/02/12 职场文书
Redis6.0搭建集群Redis-cluster的方法
2021/05/08 Redis
mybatis3中@SelectProvider传递参数方式
2021/08/04 Java/Android