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 相关文章推荐
django自定义Field实现一个字段存储以逗号分隔的字符串
Apr 27 Python
python处理图片之PIL模块简单使用方法
May 11 Python
Python中用于计算对数的log()方法
May 15 Python
Django框架中数据的连锁查询和限制返回数据的方法
Jul 17 Python
node.js获取参数的常用方法(总结)
May 29 Python
python基础学习之如何对元组各个元素进行命名详解
Jul 12 Python
python 实现调用子文件下的模块方法
Dec 07 Python
python使用magic模块进行文件类型识别方法
Dec 08 Python
Python Matplotlib实现三维数据的散点图绘制
Mar 19 Python
python英语单词测试小程序代码实例
Sep 09 Python
python文件和文件夹复制函数
Feb 07 Python
python:批量统计xml中各类目标的数量案例
Mar 10 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
自制汽车收音机天线:收听广播的技巧和方法
2021/03/02 无线电
5.PHP的其他功能
2006/10/09 PHP
PHP 飞信好友免费短信API接口开源版
2010/07/22 PHP
php导出word文档与excel电子表格的简单示例代码
2014/03/08 PHP
PHP 面向对象程序设计(oop)学习笔记 (四) - 异常处理类Exception
2014/06/12 PHP
ThinkPHP跳转页success及error模板实例教程
2014/07/17 PHP
ThinkPHP设置禁止百度等搜索引擎转码(简单实用)
2016/02/15 PHP
php组合排序简单实现方法
2016/10/15 PHP
js中单引号与双引号冲突问题解决方法
2013/10/04 Javascript
jquery向上向下取整适合分页查询
2014/09/06 Javascript
JavaScript基础篇(6)之函数表达式闭包
2015/12/11 Javascript
js点击文本框弹出可选择的checkbox复选框
2016/02/03 Javascript
jQuery fancybox在ie浏览器下无法显示关闭按钮的解决办法
2016/02/19 Javascript
js运动事件函数详解
2016/10/21 Javascript
jQuery弹出div层过2秒自动消失
2016/11/29 Javascript
JavaScript简单验证表单空值及邮箱格式的方法
2017/01/20 Javascript
jQuery表单元素过滤选择器用法实例分析
2019/02/20 jQuery
利用Node.js如何实现文件循环覆写
2019/04/05 Javascript
详解vue的双向绑定原理及实现
2019/05/05 Javascript
vue实现固定位置显示功能
2019/05/30 Javascript
JS实现可视化音频效果的实例代码
2020/01/16 Javascript
[01:14]TI珍贵瞬间系列(六):冠军
2020/08/30 DOTA
Python中atexit模块的基本使用示例
2015/07/08 Python
Tornado协程在python2.7如何返回值(实现方法)
2017/06/22 Python
Python图像处理之简单画板实现方法示例
2018/08/30 Python
Django Rest framework之权限的实现示例
2018/12/17 Python
Python lambda表达式用法实例分析
2018/12/25 Python
pandas和spark dataframe互相转换实例详解
2020/02/18 Python
Python 面向对象部分知识点小结
2020/03/09 Python
mac安装python3后使用pip和pip3的区别说明
2020/09/01 Python
使用CSS3来绘制一个月食图案
2015/07/18 HTML / CSS
中国综合网上购物商城:苏宁易购
2016/08/09 全球购物
绿色城市实施方案
2014/03/19 职场文书
党的群众路线教育实践方案
2014/05/11 职场文书
2016年母亲节寄语
2015/12/04 职场文书
三八红旗手先进事迹材料(2016推荐版)
2016/02/25 职场文书