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 相关文章推荐
PyQt5利用QPainter绘制各种图形的实例
Oct 19 Python
简单实现python收发邮件功能
Jan 05 Python
简单实现python聊天程序
Apr 01 Python
python绘制地震散点图
Jun 18 Python
Django CSRF跨站请求伪造防护过程解析
Jul 31 Python
git查看、创建、删除、本地、远程分支方法详解
Feb 18 Python
使用pandas库对csv文件进行筛选保存
May 25 Python
Spring http服务远程调用实现过程解析
Jun 11 Python
python与c语言的语法有哪些不一样的
Sep 13 Python
Python操作word文档插入图片和表格的实例演示
Oct 25 Python
python 使用cycle构造无限循环迭代器
Dec 02 Python
python OpenCV学习笔记
Mar 31 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
实例讲解PHP面向对象之多态
2014/08/20 PHP
php导入模块文件分享
2015/03/17 PHP
php加密解密字符串示例
2016/10/13 PHP
PHP实现上传图片到数据库并显示输出的方法
2018/05/31 PHP
Laravel框架查询构造器简单示例
2019/05/08 PHP
Yii框架函数简单用法分析
2019/09/09 PHP
js传值 判断
2006/10/26 Javascript
学习YUI.Ext第五日--做拖放Darg&amp;Drop
2007/03/10 Javascript
javascript dom 操作详解 js加强
2009/07/13 Javascript
javascript parseInt 大改造
2009/09/27 Javascript
JQuery UI的拖拽功能实现方法小结
2012/03/14 Javascript
js仿小米官网图片轮播特效
2016/09/29 Javascript
JavaScript中利用for循环遍历数组
2017/01/15 Javascript
js简单实现网页换肤功能
2017/04/07 Javascript
Angular异步变同步处理方法
2018/08/13 Javascript
layui从数据库中获取复选框的值并默认选中方法
2018/08/15 Javascript
atom-design(Vue.js移动端组件库)手势组件使用教程
2019/05/16 Javascript
Vue3.0结合bootstrap创建多页面应用
2019/05/28 Javascript
通过图带你深入了解vue的响应式原理
2019/06/21 Javascript
python爬虫入门教程之糗百图片爬虫代码分享
2014/09/02 Python
python基于xmlrpc实现二进制文件传输的方法
2015/06/02 Python
python 计算数组中每个数字出现多少次--“Bucket”桶的思想
2017/12/19 Python
python爬取网页内容转换为PDF文件
2020/07/28 Python
python微信公众号之关键词自动回复
2018/06/15 Python
Pycharm内置终端及远程SSH工具的使用教程图文详解
2020/03/19 Python
如何在Canvas中添加事件的方法示例
2019/05/21 HTML / CSS
生产班组长岗位职责
2014/01/05 职场文书
教导处工作制度
2014/01/18 职场文书
大学生村官事迹材料
2014/01/21 职场文书
消防安全检查制度
2014/02/04 职场文书
商场消防演习方案
2014/02/12 职场文书
领导干部保密承诺书
2014/08/30 职场文书
2015年青年志愿者工作总结
2015/05/20 职场文书
单位证明范文
2015/06/18 职场文书
大学生创业计划书
2019/06/24 职场文书
“鬼灭之刃”热度不减,其成功背后的原因是什么?
2022/03/22 日漫