Python学习之路【第三篇】--集合
语法结构: set1.issubset(set2)
判断集合set1是否为set2的子集,返回布尔值。
|
1
2
3
4
5
6
|
s1 = {'Java', 'PHP', 'Python', 'C++'}s2 = {'Java', 'Shell', 'Ruby'}print(s1.issubset(s2))输出:False |
- issuperset()
语法结构: set1.issuperset(set2)
判断set1是否为set2的父集。123456s1={'Java','PHP','Python','C++'}s2={'Java','C++'}print(s1.issuperset(s2))输出:True - isdisjoint()
语法结构: set1.isdisjoint(set2)
判断set1和set2是否存在交集, 如果不存在返回True, 存在则返回False.123456789s1={'Java','PHP','Python','C++'}s2={'Java','C++'}s3={'GO'}print(s1.isdisjoint(s2))print(s1.isdisjoint(s3))输出:FalseTrue - symmetric_difference()
语法结构:set1.symmetric_difference(set2)或set1 ^ set2
返回set1和set2的对称式差集,相当于执行set1.difference(set2)和set2.difference(set1),以新的set集合形式返回set1和set2中差异部分元素(不在两者中同时存在)集合(仅在set1和set2中出现过一次的元素不影响原set1和set2)。12345678s1={'Java','PHP','Python','C++'}s2={'Java','Shell','Ruby'}print(s1.symmetric_difference(s2))print(s1 ^ s2)输出:{'PHP','Ruby','Shell','C++','Python'}{'PHP','Ruby','Shell','C++','Python'} - symmetric_difference_update()
语法结构:set1.symmetric_difference(set2)
返回set1和set2的对称式差集,并覆盖更新原set1集合(原来被调用操作的对象),即执行set1 = set1.symmetric_difference(set2)123456789s1={'Java','PHP','Python','C++'}s2={'Java','Shell','Ruby'}print(s1.symmetric_difference(s2))s1.symmetric_difference_update(s2)print(s1)输出:{'PHP','C++','Shell','Python','Ruby'}{'Python','Shell','Ruby','PHP','C++'} - intersection()
语法结构: set1.intersection(set2)或set1 & set2
交集运算,以set方式返回set1和set2的交集部分(同时存在的元素),不影响原集合set1和set2.123456s1={'Java','PHP','Python','C++'}s2={'Java','Shell','Ruby'}print(s1.intersection(s2))输出:{'Java'} - intersection_update()
语法结构: set1.intersection_update(set2)
执行交集运算,并将结果覆盖更新原集合set1(原来被调用操作的对象)。1234567s1={'Java','PHP','Python','C++'}s2={'Java','Shell','Ruby'}s1.intersection_update(s2)print(s1)输出:{'Java'} - union()
语法结构: set1.union(set2)或set1 | set2
执行并集计算,合并set1和set2中的对象并做去重处理,最后以集合形式返回结果。
综合上述关系运算函数,可确定并集计算相当于对称差集与交集的并集计算,即合并重复重现的对象和不重复出现的对象,set1.union(set2) = (set1.symmetric_difference(set2)).union(set1.intersection(set2))123456s1={'Java','PHP','Python','C++'}s2={'Java','Shell','Ruby'}print(s1.union(s2))输出:{'Shell','PHP','Ruby','C++','Python','Java'} - update()
语法结构: set1.update(obj)
往集合中批量添加元素,添加的对象必须是可以迭代的对象(当然如果原集合中存在与迭代对象中重复的元素会做去重处理),本质上是通过循环,把传入的迭代对象逐个添加更新到原集合中。1234567s1={'Java','PHP','Python','C++'}s2={'Java','Shell','Ruby'}s1.update(s2)print(s1)输出:{'Python','Ruby','Shell','C++','Java','PHP'} - in 或not in
成员运算函数同样适用于集合,最后返回布尔值。12345678910s1={'Java','PHP','Python','C++'}print('Java'ins1)if'Go'ins1:print("OK")else:print("Not OK")输出:TrueNot OK - <=
语法结构: set1 <= set2
判断set1中的每个元素是否都在set2中,即判断set1是否为set2的子集,等同于set1.issubset(set2)12345678910111213s1={'Java','PHP','Python','C++'}s2={'Java','Shell','Ruby'}s3=s1.union(s2)print(s1 <=s2)print(s1.issubset(s2))print(s1 <=s3)print(s1.issubset(s3))输出:FalseFalseTrueTrue
3.3 关系测试运算符
常见的关系测试运算符如下:

|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
s1 = {'Java', 'PHP', 'Python', 'C++'}s2 = {'Java', 'Shell', 'Ruby'}print(s1 - s2)print(s1.difference(s2))print("")print(s1 & s2)print(s1.intersection(s2))print("")print(s1 | s2)print(s1.union(s2))print("")print(s1 ^ s2)print(s1.symmetric_difference(s2))print("")print(s1 <= s2)print(s1.issubset(s2))输出:{'C++', 'PHP', 'Python'}{'C++', 'PHP', 'Python'}{'Java'}{'Java'}{'C++', 'Python', 'Shell', 'Ruby', 'Java', 'PHP'}{'C++', 'Python', 'Shell', 'Ruby', 'Java', 'PHP'}{'C++', 'Shell', 'Python', 'Ruby', 'PHP'}{'C++', 'Shell', 'Python', 'Ruby', 'PHP'}<br><br>False<br>False |
Python学习之路【第三篇】--集合的更多相关文章
- python学习之路网络编程篇(第四篇)
python学习之路网络编程篇(第四篇) 内容待补充
- Python学习之路【第一篇】-Python简介和基础入门
1.Python简介 1.1 Python是什么 相信混迹IT界的很多朋友都知道,Python是近年来最火的一个热点,没有之一.从性质上来讲它和我们熟知的C.java.php等没有什么本质的区别,也是 ...
- python学习之路网络编程篇(第三篇)
python线程 Threading用于提供线程相关的操作,线程是应用程序中工作的最小单元. #!/usr/bin/env python # -*- coding:utf-8 -*- import t ...
- python成长之路第三篇(1)_初识函数
目录: 函数 为什么要使用函数 什么是函数 函数的返回值 文档化函数 函数传参数 文件操作(二) 1.文件操作的步骤 2.文件的内置方法 函数: 一.为什么要使用函数 在日常写代码中,我们会发现有很多 ...
- python成长之路第三篇(3)_内置函数及生成器迭代器
打个广告欢迎加入linux,python资源分享群群号:478616847 目录: 1.lambda表达式 2.map内置函数 3.filter内置函数 4.reduce内置函数 5.yield生成器 ...
- python成长之路第三篇(4)_作用域,递归,模块,内置模块(os,ConfigParser,hashlib),with文件操作
打个广告欢迎加入linux,python资源分享群群号:478616847 目录: 1.作用域 2.递归 3.模块介绍 4.内置模块-OS 5.内置模块-ConfigParser 6.内置模块-has ...
- Python人工智能之路 - 第三篇 : PyAudio 实现录音 自动化交互实现问答
Python 很强大其原因就是因为它庞大的三方库 , 资源是非常的丰富 , 当然也不会缺少关于音频的库 关于音频, PyAudio 这个库, 可以实现开启麦克风录音, 可以播放音频文件等等,此刻我们不 ...
- 大数据萌新的Python学习之路(三)
笔记内容: 一.集合及其运算 在之列表中我们可以存储数据,并且对数据进行各种各样的操作.但是如果我们想要对数据进行去重时是十分麻烦的,需要使用循环,要建立新的列表,还要 进行对比,十分的麻烦,还消耗 ...
- python成长之路第三篇(2)_正则表达式
打个广告欢迎加入linux,python资源分享群群号:478616847 目录: 1.什么是正则表达式,python中得正则简介 2.re模块的内容 3.小练习 一.什么是正则表达式(re) 正则表 ...
- python学习之路网络编程篇(第二篇)
新课程知识的引入:python作用域 #python中无块级别作用域 if 1 == 1 : name = 'alex' print(name) for i in range(10): name = ...
随机推荐
- SQLServer代理新建或者编辑作业报错
SQLServer代理新建或者编辑作业的时候报错如下 错误信息: 标题: Microsoft SQL Server Management Studio------------------------- ...
- R工具包一网打尽
这里有很多非常不错的R包和工具. 该想法来自于awesome-machine-learning. 这里是包的导航清单,看起来更方便 >>>导航清单 通过这些翻译了解这些工具包,以后干 ...
- URL helper 逆向破解思路+详细过程 利用messagebox破解
先了解一下软件的运行: 打开后是这样的,要注册 随便输入假注册码,看他怎么响应: 会弹出一个信息窗(massageBox)提示注册失败.到这里就行了,关掉,然后用OD打开,按F9跑起来: 这里输入假码 ...
- 使用JS与CSS3的翻转实现3D翻牌效果
之前我们有讨论过使用CSS3如何实现网页水平翻转的效果,而这次我们介绍的是翻转效果更深一层的应用——3D翻牌效果. 这里我们需要使用flip中轴翻转实现,又因为是3D效果,如果希望呈现一定的3D视角, ...
- Android Studio 使用USB真机调试教程
允许安装未知来源的软件 允许USB调试 设置启动方式 选择USB device 然后运行 会自动安装软件启动! 参考: https://blog.csdn.net/fubo1990/article/d ...
- C++.sprintf
ZC:sprintf,sprintf_s 1.经测试 sprintf,是会在字符串的最后 加上'\0'的,∴ 不用担心 字符串的结尾的问题 2. 3. 4. 5.
- Android AndFix修复方式的限制
这里阅览了很多网上关于修复的资料,一一贴在这里便于查看: https://github.com/alibaba/AndFix 这是官方处 要了解使用,一定得看看这里. http://www.jia ...
- 动态规划-填格子问题 Domino and Tromino Tiling
2018-09-01 22:38:19 问题描述: 问题求解: 本题如果是第一看到,应该还是非常棘手的,基本没有什么思路. 不妨先从一种简化的版本来考虑.如果仅有一种砖块,那么,填充的方式如下.
- thinkphp中出现unserialize(): Error at offset 533 of 1857 bytes如何解决
thinkphp中出现unserialize(): Error at offset 533 of 1857 bytes如何解决 一.总结 一句话总结:清缓存就好了,所以框架有问题可以考虑清缓存 清缓存 ...
- 雷林鹏分享:C# 结构(Struct)
C# 结构(Struct) 在 C# 中,结构是值类型数据结构.它使得一个单一变量可以存储各种数据类型的相关数据.struct 关键字用于创建结构. 结构是用来代表一个记录.假设您想跟踪图书馆中书的动 ...