集合(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全栈之路----常用数据类型--集合的更多相关文章

  1. Python全栈之路----常用模块----hashlib加密模块

    加密算法介绍 HASH       Python全栈之路----hash函数 Hash,一般翻译做“散列”,也有直接音译为”哈希”的,就是把任意长度的输入(又叫做预映射,pre-image),通过散列 ...

  2. Python全栈之路----常用模块----软件开发目录规范

    目录基本内容 log  #日志目录 conf  #配置目录 core/luffycity  #程序核心代码目录  #luffycity 是项目名,建议用小写 libs/modules  #内置模块 d ...

  3. Python全栈之路----常用模块----re 模块

    正则表达式就是字符串的匹配规则,在多数编程语言里都有相应的支持,python里对应的模块是 re. re的匹配语法有以下几种 re.match 从头开始匹配 re.search 匹配包含 re.fin ...

  4. Python全栈之路----常用模块----logging模块

    很多程序都有记录日志的需求,并且日志中包含的信息即有正常的程序访问日志,还可能有错误.警告等信息输出,python的logging模块提供了标准的日志接口,你可以通过它存储各种格式的日志,loggin ...

  5. Python全栈之路----常用模块----subprocess模块

    我们经常需要通过Python去执行一条系统命令或脚本,系统的shell命令是独立于你的python进程之外的,每执行一条命令,就是发起一个新进程,通过python调用系统命令或脚本的模块在python ...

  6. Python全栈之路----常用模块----序列化(json&pickle&shelve)模块详解

    把内存数据转成字符,叫序列化:把字符转成内存数据类型,叫反序列化. Json模块 Json模块提供了四个功能:序列化:dumps.dump:反序列化:loads.load. import json d ...

  7. Python全栈之路----常用模块----shutil模块

    高级的 文件.文件包.压缩包 处理模块   参考Python之路[第四篇]:模块     #src是原文件名,fdst是新文件名 shutil.copyfileobj(fsrc, fdst[, len ...

  8. Python全栈之路----常用模块----datetime模块详解

    相比于time模块,datetime模块的接口则更直观,更容易调用. datetime模块定义了下面这几个类: datetime.date:表示日期的类,常用的属性有year,month,day: d ...

  9. Python全栈之路----常用模块----xml处理模块

    xml是实现不同语言或程序之间进行数据交换的协议,跟json差不多,但json使用起来更简单,不过,古时候,在json还没诞生的黑暗年代,大家只能选择用xml呀,至今很多传统公司如金融行业的很多系统的 ...

随机推荐

  1. 获取从库Seconds_Behind_Master监控主从同步

    #!/bin/bash now_date=`date "+%Y-%m-%d,%H:%M:%S"` flag_old=`cat /home/oracle/scripts/flag.t ...

  2. 如何快速实现 markdown 转 HTML 文档?

    我想要在 Github 上开一个主题博客,我希望通过 Markdown 语法写作,然后生成 HTML 并附带自定义样式显示在网页上. 我找到了 gulp-markdown 这个库,看起来符合我的需求场 ...

  3. iOS开发 -------- 图片浏览器初步

    一 示例代码 // // RootViewController.m // 图片浏览器初步 // // Created by lovestarfish on 15/11/1. // Copyright ...

  4. 腾讯云centos7.2安装jdk1.7 tomcat7.0部署项目示例

    说实话win server的性能并不好,所以程序员必须会在Linux上安装环境,部署项目. 第一步,官网下载tomcat和jdk压缩文件*.tar.gz  下载路径如下: jdk:http://www ...

  5. UVA11235 Frequent values

    思路 连续的值只会分布在一起成一个块 讨论两边的块,中间就是RMQ了 ST表即可 代码 #include <cstdio> #include <algorithm> #incl ...

  6. P3346 [ZJOI2015]诸神眷顾的幻想乡

    思路 注意到叶子节点(度数为1)只有20个,可以分别以这20个节点为根,把所有子串插入SAM中,统计最后的本质不同的子串个数 所以就是广义SAM了 然后注意要判断一下有无重复插入 代码 #includ ...

  7. SecureCRT自动断开

    解决方法 可以通过两个入口进行设置: 1.右击Session中的连接,选择Properties->Terminal->Anti-idle->勾选Send protocol NO-OP ...

  8. linux下查看进程命令

    他们都是用来显示当前运行的进程,但是: ps -aux 是用BSD的格式来显示python这个进程显示的项目有:USER , PID , %CPU , %MEM , VSZ , RSS , TTY , ...

  9. [Java] int 转换为BigDecimal

    new BigDecimal(int i); BigDecimal.parseBigDecimal(String.valueOf(int i));

  10. Nearest neighbor graph | 近邻图

    最近在开发一套自己的单细胞分析方法,所以copy paste事业有所停顿. 实例: R eNetIt v0.1-1 data(ralu.site) # Saturated spatial graph ...