Python3.5集合及其常见运算实例详解


Posted in Python onMay 01, 2019

本文实例讲述了Python3.5集合及其常见运算。分享给大家供大家参考,具体如下:

1、集合的定义:集合是一个无序的、无重复的数据的数据组合。

2、集合的特征:

(1)去除重复元素:将一个列表变成集合就可实现去重。

(2)测试关系:测试两组数据之间交集、并集、差集等关系。

3、集合常用的操作:

(1)去重复:将列表变成集合,形式:集合=set(列表)

list_1 = [1,3,5,3,6,8,9,6,8,1]
list_1 = set(list_1)
print(list_1,type(list_1))

运行结果:

{1, 3, 5, 6, 8, 9} <class 'set'>

(2)测试两个集合的交集——形式为:print((集合1).intersection(集合2))     或  print(集合1 & 集合2)

list_1 = [1,3,5,3,6,8,9,6,8,1]
list_1 = set(list_1)  #把列表变成集合,去重
list_2 = set([2,5,4,6,8,9])
print(list_1,list_2)
print(list_1.intersection(list_2))  #两个集合的交集

运行结果:

{1, 3, 5, 6, 8, 9} {2, 4, 5, 6, 8, 9}
{8, 9, 5, 6}

list_1 = [1,3,5,2,6,8,9,6,8,4]
list_1 = set(list_1)  #把列表变成集合,去重
list_2 = set([2,5,6,8,9,0])
print(list_1,list_2)
print(list_1 & list_2)  #两个集合的交集

运行结果:

{1, 2, 3, 4, 5, 6, 8, 9} {0, 2, 5, 6, 8, 9}
{8, 9, 2, 5, 6}

(3)测试两个集合的并集(合并两个集合并去除重复元素)——形式为:print((集合1).union(集合2))   或    集合1 | 集合2

list_1 = [1,3,5,3,6,8,9,6,8,1]
list_1 = set(list_1)  #把列表变成集合,去重
list_2 = set([2,5,4,6,8,9])
print(list_1,list_2)
print(list_1.union(list_2))     #两个集合的并集

运行结果:

{1, 3, 5, 6, 8, 9} {2, 4, 5, 6, 8, 9}
{1, 2, 3, 4, 5, 6, 8, 9}

list_1 = [1,3,5,2,6,8,9,6,8,4]
list_1 = set(list_1)  #把列表变成集合,去重
list_2 = set([2,5,6,8,9,0])
print(list_1,list_2)
print(list_1 | list_2)  #两个集合的并集

运行结果:

{1, 2, 3, 4, 5, 6, 8, 9} {0, 2, 5, 6, 8, 9}
{0, 1, 2, 3, 4, 5, 6, 8, 9}

(4)测试两个集合的差集——形式为:print((集合1).difference(集合2))    或者   print((集合2).difference(集合1))

list_1 = [1,3,5,3,6,8,9,6,8,1]
list_1 = set(list_1)  #把列表变成集合,去重
list_2 = set([2,5,4,6,8,9])
print(list_1,list_2)
print(list_1.difference(list_2))  #集合1对集合2的差集
print(list_2.difference(list_1))  #集合2对集合1的差集

运行结果:

{1, 3, 5, 6, 8, 9} {2, 4, 5, 6, 8, 9}
{1, 3}
{2, 4}

list_1 = [1,3,5,2,6,8,9,6,8,4]
list_1 = set(list_1)  #把列表变成集合,去重
list_2 = set([2,5,6,8,9,0])
print(list_1,list_2)
print(list_1 - list_2)  #集合1对集合2的差集
print(list_2 - list_1)  #集合2对集合1的差集

运行结果:

{1, 2, 3, 4, 5, 6, 8, 9} {0, 2, 5, 6, 8, 9}
{1, 3, 4}
{0}

(5)测试一个集合是否为另一个集合的子集——形式为:print(集合1.issubset(集合2))   或者   print(集合2.issubset(集合1))

list_1 = [1,3,5,2,6,8,9,6,8,4]
list_1 = set(list_1)  #把列表变成集合,去重
list_2 = set([2,5,4,6,8,9])
print(list_1,list_2)
print(list_1.issubset(list_2))   #集合1是否为集合2的子集
print(list_2.issubset(list_1))   #集合2是否为集合1的子集

运行结果:

{1, 2, 3, 4, 5, 6, 8, 9} {2, 4, 5, 6, 8, 9}
False
True

(6)测试一个集合是否为另一个集合的父集——形式为:print(集合1.issuperset(集合2))   或者   print(集合2.issuperset(集合1))

list_1 = [1,3,5,2,6,8,9,6,8,4]
list_1 = set(list_1)  #把列表变成集合,去重
list_2 = set([2,5,4,6,8,9])
print(list_1,list_2)
print(list_1.issuperset(list_2))  #集合1是否为集合2的父集
print(list_2.issuperset(list_1))  #集合2是否为集合1的父集

运行结果:

{1, 2, 3, 4, 5, 6, 8, 9} {2, 4, 5, 6, 8, 9}
True
False

(7)测试两个集合的对称差集——形式为:print(集合1.symmetric_difference(集合2))   或  print(集合1 ^ 集合2)

list_1 = [1,3,5,2,6,8,9,6,8,4]
list_1 = set(list_1)  #把列表变成集合,去重
list_2 = set([22,5,4,65,8,9,3])
print(list_1,list_2)
print(list_1.symmetric_difference(list_2))  #取两个集合的对称差集(互相都没有的元素)

运行结果:

{1, 2, 3, 4, 5, 6, 8, 9} {65, 3, 4, 5, 8, 9, 22}
{65, 1, 22, 2, 6}

list_1 = [1,3,5,2,6,8,9,6,8,4]
list_1 = set(list_1)  #把列表变成集合,去重
list_2 = set([2,5,6,8,9,0])
print(list_1,list_2)
print(list_1 ^ list_2)  #取两个集合的对称差集

运行结果:

{1, 2, 3, 4, 5, 6, 8, 9} {0, 2, 5, 6, 8, 9}
{0, 1, 3, 4}

(8)测试两个集合的交集,没有交集返回True;有交集返回False——形式为:print(集合1.isdisjoint(集合2))

list_1 = [1,3,5,2,6,8,9,6,8,4]
list_1 = set(list_1)  #把列表变成集合,去重
list_2 = set([22,54,65,81,10,0])
print(list_1,list_2)
print(list_1.isdisjoint(list_2))  #两个集合没有交集返回True

运行结果:

{1, 2, 3, 4, 5, 6, 8, 9} {0, 65, 10, 81, 54, 22}
True

(9)给集合添加一项元素——调用:要添加内容的集合.add(添加内容)

list_1 = [1,3,5,2,6,8,9,6,8,4]
list_1 = set(list_1)  #把列表变成集合,去重
print(list_1)
list_1.add(54)  #添加
print(list_1)

运行结果:

{1, 2, 3, 4, 5, 6, 8, 9}
{1, 2, 3, 4, 5, 6, 8, 9, 54}

(10)给集合添加多项元素——调用:要添加内容的集合.update(添加内容)

list_1 = [1,3,5,2,6,8,9,6,8,4]
list_1 = set(list_1)  #把列表变成集合,去重
print(list_1)
list_1.update([11,22,33])
print(list_1)

运行结果:

{1, 2, 3, 4, 5, 6, 8, 9}
{1, 2, 3, 4, 5, 6, 33, 8, 9, 11, 22}

(11)给集合删除一项元素——调用:要删除内容的集合.remove(删除内容)  注:删除的元素不存在会报错

list_1 = [1,3,5,2,6,8,9,6,8,4]
list_1 = set(list_1)  #把列表变成集合,去重
print(list_1)
list_1.remove(1)
print(list_1)

运行结果:

{1, 2, 3, 4, 5, 6, 8, 9}
{2, 3, 4, 5, 6, 8, 9}

随意删除集合里的一个元素并将删除的元素返回——调用:print(集合.pop())

list_1 = [1,3,5,2,6,8,9,6,8,4]
list_1 = set(list_1)  #把列表变成集合,去重
print(list_1)
print(list_1.pop())
print(list_1.pop())
print(list_1.pop())

运行结果:

{1, 2, 3, 4, 5, 6, 8, 9}
1
2
3

删除集合中指定的一项元素——调用:集合.discard(删除元素)   注:删除的元素不存在时会输出None,不会报错

list_1 = [1,3,5,2,6,8,9,6,8,4]
list_1 = set(list_1)  #把列表变成集合,去重
print(list_1)
print(list_1.discard(23))
list_1.discard(3)
print(list_1)

运行结果:

{1, 2, 3, 4, 5, 6, 8, 9}
None
{1, 2, 4, 5, 6, 8, 9}

(12)求集合的长度——调用:print(len(集合))

list_1 = [1,3,5,2,6,8,9,6,8,4]
list_1 = set(list_1)  #把列表变成集合,去重
print(list_1)
print(len(list_1))

运行结果:

{1, 2, 3, 4, 5, 6, 8, 9}
8

(13)测试x是否为s的成员(适用于字符串、列表、字典、集合)——形式为:x in s
测试x是否不是s的成员(适用于字符串、列表、字典、集合)——形式为:x noti n  s

list_1 = [1,3,5,2,6,8,9,6,8,4]
list_1 = set(list_1)  #把列表变成集合,去重
print(list_1)
print(3 in list_1)
print(7 not in list_1)

运行结果:

{1, 2, 3, 4, 5, 6, 8, 9}
True
True

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
python网络爬虫采集联想词示例
Feb 11 Python
详解Python中的装饰器、闭包和functools的教程
Apr 02 Python
简单谈谈python中的多进程
Nov 06 Python
Flask解决跨域的问题示例代码
Feb 12 Python
解决Pycharm中import时无法识别自己写的程序方法
May 18 Python
Python爬虫小技巧之伪造随机的User-Agent
Sep 13 Python
python实现一个简单的ping工具方法
Jan 31 Python
Python玩转PDF的各种骚操作
May 06 Python
简单了解python shutil模块原理及使用方法
Apr 28 Python
Python如何解除一个装饰器
Aug 07 Python
Python根据URL地址下载文件并保存至对应目录的实现
Nov 15 Python
python UDF 实现对csv批量md5加密操作
Jan 01 Python
Django给admin添加Action的步骤详解
May 01 #Python
Django重置migrations文件的方法步骤
May 01 #Python
OpenCV-Python 摄像头实时检测人脸代码实例
Apr 30 #Python
浅谈Python编程中3个常用的数据结构和算法
Apr 30 #Python
python通过paramiko复制远程文件及文件目录到本地
Apr 30 #Python
python实现定时压缩指定文件夹发送邮件
Dec 22 #Python
python定时复制远程文件夹中所有文件
Apr 30 #Python
You might like
php对二维数组进行排序的简单实例
2013/12/19 PHP
PHP获取中英混合字符串长度的方法
2014/06/07 PHP
php中的四舍五入函数代码(floor函数、ceil函数、round与intval)
2014/07/14 PHP
php使用Cookie控制访问授权的方法
2015/01/21 PHP
ThinkPHP框架实现的微信支付接口开发完整示例
2019/04/10 PHP
小议Javascript中的this指针
2010/03/18 Javascript
jquery与js函数冲突的两种解决方法
2013/09/09 Javascript
javascript新建标签,判断键盘输入,以及判断焦点(示例代码)
2013/11/25 Javascript
JS方法调用括号的问题探讨
2014/01/24 Javascript
js弹出div并显示遮罩层
2014/02/12 Javascript
javascript编写实用的省市选择器
2015/02/12 Javascript
功能强大的Bootstrap效果展示(二)
2016/08/03 Javascript
js学习笔记之事件处理模型
2016/10/31 Javascript
JavaScript中立即执行函数实例详解
2017/11/04 Javascript
vue实现微信分享朋友圈,发送朋友的示例讲解
2018/02/10 Javascript
JavaScript交换两个变量方法实例
2019/11/25 Javascript
Vue组件为什么data必须是一个函数
2020/06/11 Javascript
[46:43]DOTA2上海特级锦标赛D组小组赛#1 EG VS COL第三局
2016/02/28 DOTA
Python 列表(List) 的三种遍历方法实例 详解
2017/04/15 Python
django中的setting最佳配置小结
2017/11/21 Python
安装python3的时候就是输入python3死活没有反应的解决方法
2018/01/24 Python
Python为何不能用可变对象作为默认参数的值
2019/07/01 Python
Python greenlet和gevent使用代码示例解析
2020/04/01 Python
解决keras GAN训练是loss不发生变化,accuracy一直为0.5的问题
2020/07/02 Python
如何基于python实现年会抽奖工具
2020/10/20 Python
纯css3实现的竖形无限级导航
2014/12/10 HTML / CSS
Troy-Bilt官网:草坪割草机、吹雪机、分蘖机等
2019/02/19 全球购物
印度电子产品购物网站:Vijay Sales
2021/02/16 全球购物
银行会计职员个人的自我评价
2013/09/29 职场文书
渔夫的故事教学反思
2014/02/14 职场文书
大学生工作求职信
2014/06/23 职场文书
《赵州桥》教学反思
2016/02/17 职场文书
幼儿园教学反思范文
2016/03/02 职场文书
关于保护环境的建议书
2019/06/24 职场文书
详解JS ES6编码规范
2021/05/07 Javascript
docker-compose部署Yapi的方法
2022/04/08 Servers