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 中文乱码问题深入分析
Mar 13 Python
wxpython学习笔记(推荐查看)
Jun 09 Python
python编程通过蒙特卡洛法计算定积分详解
Dec 13 Python
Python使用jsonpath-rw模块处理Json对象操作示例
Jul 31 Python
Python离线安装PIL 模块的方法
Jan 08 Python
Python依赖包整体迁移方法详解
Aug 15 Python
Python逐行读取文件内容的方法总结
Feb 14 Python
python内打印变量之%和f的实例
Feb 19 Python
基于Django signals 信号作用及用法详解
Mar 28 Python
Python3 多线程(连接池)操作MySQL插入数据
Jun 09 Python
详解解Django 多对多表关系的三种创建方式
Aug 23 Python
Python matplotlib绘制条形统计图 处理多个实验多组观测值
Apr 21 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
深入Nginx + PHP 缓存详解
2013/07/11 PHP
php递归使用示例(php递归函数)
2014/02/14 PHP
php使用pdo连接mssql server数据库实例
2014/12/25 PHP
让ThinkPHP的模板引擎达到最佳效率的方法详解
2017/03/14 PHP
PHP创建单例后台进程的方法示例
2017/05/23 PHP
Eclipse PHPEclipse 配置的具体步骤
2017/08/08 PHP
ECMAScript 基础知识
2007/06/29 Javascript
基于Jquery实现的一个图片滚动切换
2012/06/21 Javascript
从数据结构分析看:用for each...in 比 for...in 要快些
2013/04/17 Javascript
javascript使用prototype完成单继承
2014/12/24 Javascript
举例讲解Node.js中的Writable对象
2015/07/29 Javascript
bootstrap modal弹出框的垂直居中
2016/12/14 Javascript
JS中showModalDialog关闭子窗口刷新主窗口用法详解
2017/03/25 Javascript
Vue 2.5 Level E 发布了: 新功能特性一览
2017/10/24 Javascript
node-red File读取好保存实例讲解
2019/09/11 Javascript
python二分法实现实例
2013/11/21 Python
Python中分数的相关使用教程
2015/03/30 Python
理解python正则表达式
2016/01/15 Python
利用python实现xml与数据库读取转换的方法
2017/06/17 Python
Python 批量合并多个txt文件的实例讲解
2018/05/08 Python
Python3 SSH远程连接服务器的方法示例
2018/12/29 Python
python绘制漏斗图步骤详解
2019/03/04 Python
详解python中@的用法
2019/03/27 Python
python+openCV利用摄像头实现人员活动检测
2019/06/22 Python
Python Sympy计算梯度、散度和旋度的实例
2019/12/06 Python
Python线程条件变量Condition原理解析
2020/01/20 Python
详解python tkinter 图片插入问题
2020/09/03 Python
html5 的a标签 Href 拨电话的写法
2013/11/04 HTML / CSS
毕业生求职找工作的自我评价范文
2013/11/27 职场文书
企业安全生产承诺书
2014/05/22 职场文书
初一新生军训方案
2014/05/22 职场文书
护理专科学生自荐书
2014/07/05 职场文书
电影雨中的树观后感
2015/06/15 职场文书
写作指导:怎么书写竞聘演讲稿?
2019/07/04 职场文书
python 实现的截屏工具
2021/05/08 Python
详解CSS不受控制的position fixed
2021/05/25 HTML / CSS