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使用rabbitmq实现网络爬虫示例
Feb 20 Python
Linux环境下MySQL-python安装过程分享
Feb 02 Python
Python线程中对join方法的运用的教程
Apr 09 Python
用Python生成器实现微线程编程的教程
Apr 13 Python
python处理图片之PIL模块简单使用方法
May 11 Python
基于python批量处理dat文件及科学计算方法详解
May 08 Python
Python爬虫框架Scrapy常用命令总结
Jul 26 Python
对python中dict和json的区别详解
Dec 18 Python
python3+django2开发一个简单的人员管理系统过程详解
Jul 23 Python
Python socket非阻塞模块应用示例
Sep 12 Python
python3 pillow模块实现简单验证码
Oct 31 Python
Python实战之实现简易的学生选课系统
May 25 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
火车采集器 免费版使出收费版本功能实现原理
2009/09/17 PHP
php in_array 函数使用说明与in_array需要注意的地方说明
2010/04/13 PHP
phpcms手机内容页面添加上一篇和下一篇
2015/06/05 PHP
php生成4位数字验证码的实现代码
2015/11/23 PHP
分享PHP源码批量抓取远程网页图片并保存到本地的实现方法
2015/12/01 PHP
利用PHP生成CSV文件简单示例
2016/12/21 PHP
Laravel中10个有用的用法小结
2019/05/06 PHP
jquery 打开窗口返回值实现代码
2010/03/04 Javascript
创建公共调用 jQuery Ajax 带返回值
2012/08/01 Javascript
使用GruntJS链接与压缩多个JavaScript文件过程详解
2013/08/02 Javascript
jQuery 写的简单打字游戏可以提示正确和错误的次数
2014/07/01 Javascript
node中socket.io的事件使用详解
2014/12/15 Javascript
浅谈javascript面向对象程序设计
2015/01/21 Javascript
Javascript中3个需要注意的运算符
2015/04/02 Javascript
JavaScript基本语法讲解
2015/06/03 Javascript
AngularJS入门教程之Scope(作用域)
2016/07/27 Javascript
js中的触发事件对象event.srcElement与event.target详解
2017/03/15 Javascript
node.js学习之事件模块Events的使用示例
2017/09/28 Javascript
vue select二级联动第二级默认选中第一个option值的实例
2018/01/10 Javascript
Angular 组件之间的交互的示例代码
2018/03/24 Javascript
Electron-vue开发的客户端支付收款工具的实现
2019/05/24 Javascript
JavaScript进阶(二)词法作用域与作用域链实例分析
2020/05/09 Javascript
vue仿携程轮播图效果(滑动轮播,下方高度自适应)
2021/02/11 Vue.js
[01:00] DOTA2英雄背景故事第五期之重力引力法则谜团
2020/07/16 DOTA
wxPython实现窗口用图片做背景
2018/04/25 Python
Python实现简易过滤删除数字的方法小结
2019/01/09 Python
Django框架模板用法入门教程
2019/11/04 Python
详解基于Jupyter notebooks采用sklearn库实现多元回归方程编程
2020/03/25 Python
python+django+selenium搭建简易自动化测试
2020/08/19 Python
CSS3文本换行word-wrap解决英文文本超过固定宽度不换行
2013/10/10 HTML / CSS
大学生创业计划书的用途
2014/01/08 职场文书
《雪地里的小画家》教学反思
2014/02/22 职场文书
安全施工责任书
2014/08/25 职场文书
“九一八事变纪念日”国旗下讲话稿
2014/09/14 职场文书
商务邀请函
2015/01/30 职场文书
教师教育心得体会
2016/01/19 职场文书