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发送邮件实例讲解(python发邮件附件可以使用email模块实现)
Dec 03 Python
Python中使用strip()方法删除字符串中空格的教程
May 20 Python
Python解惑之整数比较详解
Apr 24 Python
Python实现合并同一个文件夹下所有PDF文件的方法示例
Apr 28 Python
Numpy 将二维图像矩阵转换为一维向量的方法
Jun 05 Python
Anaconda下安装mysql-python的包实例
Jun 11 Python
win7+Python3.5下scrapy的安装方法
Jul 31 Python
Python 多个图同时在不同窗口显示的实现方法
Jul 07 Python
Django ORM多对多查询方法(自定义第三张表&amp;ManyToManyField)
Aug 09 Python
详解mac python+selenium+Chrome 简单案例
Nov 08 Python
PyQt使用QPropertyAnimation开发简单动画
Apr 02 Python
python基础之类方法和静态方法
Oct 24 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 parse_url 一个好用的函数
2009/10/03 PHP
smarty内置函数capture用法分析
2015/01/22 PHP
PHP实现爬虫爬取图片代码实例
2021/03/03 PHP
网页javascript精华代码集
2007/01/24 Javascript
关于javascript function对象那些迷惑分析
2011/10/24 Javascript
基于jquery实现后台左侧菜单点击上下滑动显示
2013/04/11 Javascript
js兼容的placeholder属性详解
2013/08/18 Javascript
javascript贪吃蛇完整版(源码)
2013/12/09 Javascript
多种jQuery绑定事件的实现方式
2016/06/13 Javascript
js事件冒泡与事件捕获详解
2017/02/20 Javascript
js实现倒计时效果(小于10补零)
2017/03/08 Javascript
使用Require.js封装原生js轮播图的实现代码
2017/06/15 Javascript
express+mockjs实现模拟后台数据发送功能
2018/01/07 Javascript
使用JavaScript中的lodash编写双色球效果
2018/06/24 Javascript
使用vue-router与v-if实现tab切换遇到的问题及解决方法
2018/09/07 Javascript
微信小程序实现获取准确的腾讯定位地址功能示例
2019/03/27 Javascript
详解微信小程序胶囊按钮返回|首页自定义导航栏功能
2019/06/14 Javascript
layui实现图片虚拟路径上传,预览和删除的例子
2019/09/25 Javascript
小程序实现上下切换位置
2020/11/16 Javascript
Python 冒泡,选择,插入排序使用实例
2015/02/05 Python
详解Python中的join()函数的用法
2015/04/07 Python
Python面向对象编程基础解析(二)
2017/10/26 Python
Python DataFrame设置/更改列表字段/元素类型的方法
2018/06/09 Python
通过python的matplotlib包将Tensorflow数据进行可视化的方法
2019/01/09 Python
python中enumerate() 与zip()函数的使用比较实例分析
2019/09/03 Python
Python 如何查找特定类型文件
2020/08/17 Python
英国天然宝石首饰购买网站:Gemondo Jewellery
2018/10/23 全球购物
用C#语言写出与SQLSERVER访问时的具体过程
2013/04/16 面试题
艺术应用与设计个人的自我评价
2013/11/23 职场文书
土木工程个人自荐信范文
2013/11/30 职场文书
公司总经理岗位职责
2014/03/15 职场文书
毕业自我鉴定书
2014/03/24 职场文书
三字经教学反思
2014/04/26 职场文书
团结就是力量演讲稿
2014/05/21 职场文书
企业法人代表证明书
2015/06/18 职场文书
vue组件冲突之引用另一个组件出现组件不显示的问题
2022/04/13 Vue.js