集合(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. D5 LCA 最近公共祖先

    第一题: POJ 1330 Nearest Common Ancestors POJ 1330 这个题可不是以1为根节点,不看题就会一直wa呀: 加一个找根节点的措施: #include<alg ...

  2. 剑指offer(39)平衡二叉树

    题目描述 输入一棵二叉树,判断该二叉树是否是平衡二叉树. 题目分析 第一种方法: 正常思路,应该会获得节点的左子树和右子树的高度,然后比较高度差是否小于1. 可是这样有一个问题,就是节点重复遍历了,影 ...

  3. python之路——模块和包

    阅读目录 一 模块 3.1 import 3.2 from ... import... 3.3 把模块当做脚本执行 3.4 模块搜索路径 3.5 编译python文件 二 包 2.2 import 2 ...

  4. Linux Sphinx 安装与使用

    一.什么是 Sphinx? Sphinx 是一个基于SQL的全文检索引擎,可以结合 MySQL,PostgreSQL 做全文搜索,它可以提供比数据库本身更专业的搜索功能,使得应用程序 更容易实现专业化 ...

  5. Centos 6.8安装ideaIU-2017.2.6-no-jdk

    参考资料: (一)https://www.jetbrains.com/help/idea/2017.2/intellij-idea-help.pdf  (链接: https://pan.baidu.c ...

  6. angular-material(一)

    1.引入文件(angular-material.css.angular.min.js.angular-animate.js.angular-aria.min.js.angular-material.j ...

  7. JAVA中对字符串的常见处理函数汇总

    字符串 看到字符串,想到字符串处理中,有 字符串的反转,初级面试中常用到 字符串分割成字符串组,初级面试中常用到 字符串中的替换,初级面试中常用到 字符串中的截取,初级面试中常用到 反转reverse ...

  8. Cordova结合Vue学习Camera

    简单聊两句 学习Vue+Cordova打包编译App,首先你要安装Cordova与vue,在这里本人就不说明了,自行看文档与搜索相关资料. Cordova中文官网地址 Vue中文官网地址 第一步:首先 ...

  9. 环境准备—之—linux下安装jdk

    本文大部分转自  https://www.cnblogs.com/Dylansuns/p/6974272.html openjdk与jdk的区别 ----反正不一样,要不名字也不会不相同了 https ...

  10. WingIDE 常用快捷键

    Ctrl+N        新建文件 Ctrl+O   打开文件夹 Ctrl+W            关闭当前文件 Ctrl+S              保存文件 Ctrl+shif+S      ...