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 = ...
随机推荐
- openlayers空间点查询之GetFeatureInfo
在map对象上注册点击方法监听, 这里我用的是wms,当然你也可以查询wfs map.events.register('click', map, function (e) { ...
- Codeforces 776E The Holmes Children
题目链接:http://codeforces.com/problemset/problem/776/E ${\because gcd(i,n-i)=1\Leftrightarrow gcd(i,n)= ...
- git 修改文件夹名字后如何提交
将文件夹名字从 v1.0.1 修改为 v1.0.2 git add --ignore-removal "v1.0.2/xsxsx"
- 事后调试.VC_资料01
1.windows中的调试_VC语言_编程开发B1_最全面的网站教程.html(http://study.qqcf.com/web/522/98401.htm) windows中的调试 1.事后调试有 ...
- 关于Java类和包的那些事
*.Java文件 问题:一个.java源文件中是否可以包括多个类(不是内部类)?有什么限制? 答案:可以有多个类,但只能有一个public的类,并且public的类名必须与文件名相一致.一个文件中可以 ...
- Java 层序创建和遍历二叉树
直接上代码 package te.com; import java.util.LinkedList; import java.util.Queue; import java.util.logging. ...
- es6中export和export default的区别
export与export default均可用于导出常量.函数.文件.模块 你可以在其它文件或模块中通过import+(常量 | 函数 | 文件 | 模块)名的方式,将其导入,以便能够对其进行使用 ...
- anaconda3 安装opencv3.4.2 cuda9.2 mint19(ubuntu 18.04)
从opencv1的时代,编译这玩意就不是太轻松.之前都是在win下.2.x时代,开始用cmake GUI,选vs版本,x86 x64 各种依赖库选项,debug release,... 现在3.4了, ...
- ES6 学习笔记(整理一遍阮一峰大神得入门文档,纯自己理解使用)
1.let命令 1)let和var的区别:let声明的变量只有所在的代码块有效. 2)没有变量的提升,一定要声明后使用.使用let命令声明变量之前,该变量都是不可用的.形成“暂时性死区”. 3)typ ...
- Axure 第一个原型 简单的登录页面
设置所有元件的尺寸和位置的时候都是借助截图软件来调整位置的