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呀,至今很多传统公司如金融行业的很多系统的 ...
随机推荐
- 获取从库Seconds_Behind_Master监控主从同步
#!/bin/bash now_date=`date "+%Y-%m-%d,%H:%M:%S"` flag_old=`cat /home/oracle/scripts/flag.t ...
- 如何快速实现 markdown 转 HTML 文档?
我想要在 Github 上开一个主题博客,我希望通过 Markdown 语法写作,然后生成 HTML 并附带自定义样式显示在网页上. 我找到了 gulp-markdown 这个库,看起来符合我的需求场 ...
- iOS开发 -------- 图片浏览器初步
一 示例代码 // // RootViewController.m // 图片浏览器初步 // // Created by lovestarfish on 15/11/1. // Copyright ...
- 腾讯云centos7.2安装jdk1.7 tomcat7.0部署项目示例
说实话win server的性能并不好,所以程序员必须会在Linux上安装环境,部署项目. 第一步,官网下载tomcat和jdk压缩文件*.tar.gz 下载路径如下: jdk:http://www ...
- UVA11235 Frequent values
思路 连续的值只会分布在一起成一个块 讨论两边的块,中间就是RMQ了 ST表即可 代码 #include <cstdio> #include <algorithm> #incl ...
- P3346 [ZJOI2015]诸神眷顾的幻想乡
思路 注意到叶子节点(度数为1)只有20个,可以分别以这20个节点为根,把所有子串插入SAM中,统计最后的本质不同的子串个数 所以就是广义SAM了 然后注意要判断一下有无重复插入 代码 #includ ...
- SecureCRT自动断开
解决方法 可以通过两个入口进行设置: 1.右击Session中的连接,选择Properties->Terminal->Anti-idle->勾选Send protocol NO-OP ...
- linux下查看进程命令
他们都是用来显示当前运行的进程,但是: ps -aux 是用BSD的格式来显示python这个进程显示的项目有:USER , PID , %CPU , %MEM , VSZ , RSS , TTY , ...
- [Java] int 转换为BigDecimal
new BigDecimal(int i); BigDecimal.parseBigDecimal(String.valueOf(int i));
- Nearest neighbor graph | 近邻图
最近在开发一套自己的单细胞分析方法,所以copy paste事业有所停顿. 实例: R eNetIt v0.1-1 data(ralu.site) # Saturated spatial graph ...