Python全栈之路----常用数据类型--集合
集合(set):无序的,不重复的数据组合,它的主要作用如下:
· 去重,把一个列表变成集合,就自动去重了
· 关系测试,测试两组数据之间的交集、差集、并集等关系
1.基本操作:修改,删除,合并
>>> s = {1,2,3,4}
>>> s.add(2) #添加元素,同时去掉重复的元素
>>> s
{1, 2, 3, 4}
>>> s.add(6)
>>> s
{1, 2, 3, 4, 6}
>>> s.pop() #随机删除一个元素,返回被删除元素值
1
>>> s
{2, 3, 4, 6}
>>> s.remove(6) #删除指定元素,若元素不存在则报错 discard用法与remove一致,但元素不存在时不报错
>>> s
{2, 3, 4}
>>> s.update({4,5,6,7})#将两个集合合并起来
>>> s
{2, 3, 4, 5, 6, 7}
2.关系测试:交集、差集、并集
>>> iphone7 = {'alex','rain','jack','old_driver'}
>>> iphone8 = {'alex','jack','shanshan','old_boy'}
>>> iphone7.intersection(iphone8) #i两个集合的交集
{'jack', 'alex'}
>>> iphone7 & iphone8 #两个集合的交集
{'jack', 'alex'}
>>> iphone7.difference(iphone8) #iphone7与iphone8不同的差集
{'old_driver', 'rain'}
>>> iphone7 - iphone8 #iphone7与iphone8不同的差集
{'old_driver', 'rain'}
>>> iphone7.union(iphone8) #iphone7和iphone8的并集
{'old_driver', 'rain', 'old_boy', 'alex', 'jack', 'shanshan'}
>>> iphone7 | iphone8 #并集
{'old_driver', 'rain', 'old_boy', 'alex', 'jack', 'shanshan'}
>>> iphone7.symmetric_difference(iphone8) #对称差集,二者并集-交集
{'old_driver', 'rain', 'old_boy', 'shanshan'}
>>> iphone7 ^ iphone8 #对称差集,二者并集-交集,即两个补集的并集
{'old_driver', 'rain', 'old_boy', 'shanshan'}
>>> s1 ={1,2,3,4,5}
>>> s2 ={1,2,3}
>>> s1.issubset(s2) #判断s2是否是s1的子集
False
>>> s1.issuperset(s2) #判断s2是否是s1的超集
True
>>> s1 > s2 #判断s2是否是s1的子集
True
>>> s1 < s2 #判断s2是否是s1的超集
False
>>> s1.isdisjoint(s2) #判断是否不相交
False
>>> s1.add(-1)
>>> s1.difference(s2)
{4, 5, -1}
>>> s1.difference_update(s2) #把差集的结果赋给s1
>>> s1
{4, 5, -1}
Python全栈之路----常用数据类型--集合的更多相关文章
- Python全栈之路----常用模块----hashlib加密模块
加密算法介绍 HASH Python全栈之路----hash函数 Hash,一般翻译做“散列”,也有直接音译为”哈希”的,就是把任意长度的输入(又叫做预映射,pre-image),通过散列 ...
- Python全栈之路----常用模块----软件开发目录规范
目录基本内容 log #日志目录 conf #配置目录 core/luffycity #程序核心代码目录 #luffycity 是项目名,建议用小写 libs/modules #内置模块 d ...
- Python全栈之路----常用模块----re 模块
正则表达式就是字符串的匹配规则,在多数编程语言里都有相应的支持,python里对应的模块是 re. re的匹配语法有以下几种 re.match 从头开始匹配 re.search 匹配包含 re.fin ...
- Python全栈之路----常用模块----logging模块
很多程序都有记录日志的需求,并且日志中包含的信息即有正常的程序访问日志,还可能有错误.警告等信息输出,python的logging模块提供了标准的日志接口,你可以通过它存储各种格式的日志,loggin ...
- Python全栈之路----常用模块----subprocess模块
我们经常需要通过Python去执行一条系统命令或脚本,系统的shell命令是独立于你的python进程之外的,每执行一条命令,就是发起一个新进程,通过python调用系统命令或脚本的模块在python ...
- Python全栈之路----常用模块----序列化(json&pickle&shelve)模块详解
把内存数据转成字符,叫序列化:把字符转成内存数据类型,叫反序列化. Json模块 Json模块提供了四个功能:序列化:dumps.dump:反序列化:loads.load. import json d ...
- Python全栈之路----常用模块----shutil模块
高级的 文件.文件包.压缩包 处理模块 参考Python之路[第四篇]:模块 #src是原文件名,fdst是新文件名 shutil.copyfileobj(fsrc, fdst[, len ...
- Python全栈之路----常用模块----datetime模块详解
相比于time模块,datetime模块的接口则更直观,更容易调用. datetime模块定义了下面这几个类: datetime.date:表示日期的类,常用的属性有year,month,day: d ...
- Python全栈之路----常用模块----xml处理模块
xml是实现不同语言或程序之间进行数据交换的协议,跟json差不多,但json使用起来更简单,不过,古时候,在json还没诞生的黑暗年代,大家只能选择用xml呀,至今很多传统公司如金融行业的很多系统的 ...
随机推荐
- StringUtils工具类常用方法汇总(判空、转换、移除、替换、反转)
Apache commons lang3包下的StringUtils工具类中封装了一些字符串操作的方法,非常实用,使用起来也非常方便.最近自己也经常在项目中使用到了里面的一些方法,在这里将常用的方法总 ...
- 运行软件出现:模块“msvcp110.dll”已加载,但找不到入口点DllRegister
根据百度大多数回答来说 1:先是出现 无法启动程序,因为计算机丢失mfc110.dll 尝试重新安装该程序以解决问题 错误处理:下载或者在别人电脑上拷一份 如:'msvcp110.dll‘ 这类文 ...
- Progressive Scramble【模拟】
问题 J: Progressive Scramble 时间限制: 1 Sec 内存限制: 128 MB 提交: 108 解决: 45 [提交] [状态] [命题人:admin] 题目描述 You ...
- sqlserver 判断字符串是否是数字
https://www.cnblogs.com/zjfblog/p/5625202.html sql2005有个函数ISNUMERIC(expression)函数:当expression为数字时,返回 ...
- python from entry to abandon
学习Linux已经有大致两周了,依然感觉到自己仍然在运维的大门外徘徊.于是我想要找到一个在Linux之外的业余方向,可以以作为枯燥基础学习的调节.没过多久我就发现了Python可以说是钦定的选择,它作 ...
- centos7 安装xinetd,telnet
安装方式:yum [root@master ~]# yum list |grep telnettelnet-server.x86_64 1:0.17-59.el7 ...
- ubuntu中可以ping通IP地址但是ping不通域名的问题(www.baidu.com)
治标不治本的办法:每次开机后执行sudo /etc/init.d/resolvconf restart就可以ping通. 治本方法见原博:https://blog.csdn.net/WFping518 ...
- centos 打印机安装方法
这里安装的是hplip 1.首先确定cups有没有安装 没有的话 yum install cups 安装 2.安装 hplip yum install -y hplip hplip-* 3执行 hp- ...
- [Hibernate] 通过 properties 类和 hql 语句进行动态查询
//需要保证Emp和EmpProperties中的setter和getter以及属性以及 参数占位符(:eName) 的一致//动态查询 @Test public void test4(){ EmpP ...
- LeetCode--015--三元之和(java)
给定一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?找出所有满足条件且不重复的三元组. 注意:答案中不可以包含重复的三元组. ...