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))
输出:
False
True
- 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'
in
s1)
if
'Go'
in
s1:
print
(
"OK"
)
else
:
print
(
"Not OK"
)
输出:
True
Not 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))
输出:
False
False
True
True
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 = ...
随机推荐
- Oracle 11G Client客户端安装
参考资料: http://www.cnblogs.com/jiguixin/archive/2011/09/09/2172672.html http://blog.csdn.net/lanchengx ...
- vue中的slot插槽
插槽,也就是slot,是组件的一块HTML模板,这块模板显示不显示.以及怎样显示由父组件来决定. 实际上,一个slot最核心的两个问题这里就点出来了,是显示不显示和怎样显示. 1.navigation ...
- vue定义全局方法 调用其他组件的方法
官网的写法 vue实例.$on就可以在根实例上定义全局方法 this.$root就是获取根实例 如果没有根实例 就表示当前实例 this.$root.$on 不需要.eventHub 不需要下面这 ...
- Android AndFix修复方式的限制
这里阅览了很多网上关于修复的资料,一一贴在这里便于查看: https://github.com/alibaba/AndFix 这是官方处 要了解使用,一定得看看这里. http://www.jia ...
- 力扣(LeetCode)728. 自除数
自除数 是指可以被它包含的每一位数除尽的数. 例如,128 是一个自除数,因为 128 % 1 == 0,128 % 2 == 0,128 % 8 == 0. 还有,自除数不允许包含 0 . 给定上边 ...
- 学习笔记38—国外appleID注册教程
国外appleid注册教程来啦….至于国外appleid有什么用处就不过多的介绍了,需要的人自然是知道,不知道的百度下.1.首先打开苹果appleid注册网址:https://appleid.appl ...
- (转)SPI时钟极性、时钟相位
SPI协议是一个 4 线.全双工的串口协议.根据串口时钟SCLK的相位SCPH和极性SCPOL的不同,有 4 种组合. CPOL CPHA MODE0 0 0 MODE1 0 1 MODE2 1 0 ...
- ubuntu解压和压缩文件
.tar 解包:tar xvf FileName.tar打包:tar cvf FileName.tar DirName(注:tar是打包,不是压缩!)———————————————.gz解压1:gun ...
- 雷林鹏分享:jQuery EasyUI 树形菜单 - 创建带复选框的树形菜单
jQuery EasyUI 树形菜单 - 创建带复选框的树形菜单 easyui 的树(Tree)插件允许您创建一个复选框树.如果您点击一个节点的复选框,这个点击的节点信息将向上和向下继承.例如:点击 ...
- (转) gffcompare和gffread | gtf | gff3 格式文件的分析 | gtf处理 | gtfparse
工具推荐:https://github.com/openvax/gtfparse 真不敢相信,Linux自带的命令会这么强大,从gtf中提取出需要的transcript,看起来复杂,其实一个grep就 ...