Python基础知识(8):集合

集合:由不同元素组成,无序的,不重复的序列

补充知识:可变类型:列表、字典;不可变类型:数字、字符串、元组

使用大括号{}或set()方法定义集合

se=set("hello")
se

结果:

{'e', 'o', 'l', 'h'}

可以使用set方法对列表进行去重

注:创建一个空集合必须用 set() 而不是 { }, { } 是用来创建一个空字典。

定义不可变字符要用frozenset方法,用add、remove、update方法无法改变frozenset定义的集合

集合的运算

交集&、并集|、补集(差集)-、对称补集^、子集<、超集(父集)>

交集 & 
并集 | 
补集(差集) - 
对称补集 ^ 
子集 < 
超集(父集) >

1、intersection:求交集

s1={1,2,3,4}
s2={7,2,4,9,10}
s1.intersection(s2)

结果:{2, 4}

2、union:求并集

s1={1,2,3,4}
s2={7,2,4,9,10}
s1.union(s2)

结果:

{1, 2, 3, 4, 7, 9, 10}

3、difference:求差集

s1={1,2,3,4}
s2={7,2,4,9,10}
s1.difference(s2)
结果:
{1, 3}
s2.difference(s1)
结果:
{9, 10, 7}

4、symmetric_difference:交叉并集

交叉并集可以看做并集减去交集

s1={1,2,3,4}
s2={7,2,4,9,10}
s1.symmetric_difference(s2)

结果:

{1, 3, 7, 9, 10}

集合方法

1、add:添加元素

2、clear:清除元素

3、copy:复制

4、pop:随机移除元素

5、remove:移除指定元素,若元素不存在则报错

6、discard:删除元素,若元素不存在不会报错

7、difference_update:求出差集后并对该集合进行更新

8、intersection_update:求出交集后并对该集合进行更新

9、isdisjoint:判断两个集合是否包含相同的元素,包含返回False,否则返回True

s1={1,2,3,4}
s2={7,2,4,9,10}
s1.isdisjoint(s2)

结果:False

10、issubset:判断一个集合的元素是否都在另一个集合中

s1={1,2,3,4}
s3={1, 2, 3, 4, 7, 9, 10}
s1.issubset(s3)

结果:True

11、issuperset:判断一个集合的元素是否包含另一个集合中的所有元素

s1={1,2,3,4}
s3={1, 2, 3, 4, 7, 9, 10}
s3.issuperset(s1)

结果:True

12、symmetric_difference_update:求出交叉并集后并对该集合进行更新

13、update:对多个元素进行更新

Python学习之旅(九)的更多相关文章

  1. 180分钟的python学习之旅

    最近在很多地方都可以看到Python的身影,尤其在人工智能等科学领域,其丰富的科学计算等方面类库无比强大.很多身边的哥们也提到Python非常的简洁方便,比如用Django搭建一个见得网站只需要半天时 ...

  2. Python学习笔记(九)

    Python学习笔记(九): 装饰器(函数) 内置函数 1. 装饰器 1. 作用域 2. 高阶函数 3. 闭包 如果在一个内部函数里,对在外部作用域(但不是在全局作用域)的变量进行引用,那么内部函数就 ...

  3. Python学习系列(九)(IO与异常处理)

    Python学习系列(九)(IO与异常处理) Python学习系列(八)( 面向对象基础) 一,存储器 1,Python提供一个标准的模块,称为pickle,使用它既可以在一个文件中存储任何Pytho ...

  4. python学习之旅

    python学习分类 python基础    +- day01——python初始.变量.常量.注释.基础数据类型.输入.if day02——while.字符串格式化.运算符.编码初识 day03—— ...

  5. Python学习之旅(二十九)

    Python基础知识(28):常用第三方模块 一.Pillow PIL(Python Imaging Library):提供了强大的图像操作功能,可以通过简单的代码完成复杂的图像处理,是Python平 ...

  6. Python学习之旅(十九)

    Python基础知识(18):面向对象高级编程(Ⅰ) 使用__slots__:限制实例的属性,只允许实例对类添加某些属性 (1)实例可以随意添加属性 (2)某个实例绑定的方法对另一个实例不起作用 (3 ...

  7. python学习笔记-(九)模块

    基础知识 1. 定义 模块:用来从逻辑上组织python代码(变量,函数,类,逻辑----实现一个功能),本质就是.py结尾的python文件(文件名:test.py,对应的模块就是test) 包:用 ...

  8. python学习之旅:array 转 list

    最近学习python,记录学习的点滴. >>> import numpy as np >>> a = np.array([[1,2],[3,4]]) >> ...

  9. python学习笔记之九:模块和包

    Python的标准安装包括一组模块,称为标准库.这里介绍模块的工作方式,学习如何使用它们. 一. 模块 1.1 用import从外部模块获取函数并为自己的程序所用: >>> from ...

随机推荐

  1. rpm 打包的时候 不进行strip

    http://blog.aka-cool.net/blog/2016/06/01/how-to-disable-strip-in-rpm-build/ https://www.ichenfu.com/ ...

  2. 一步步教你轻松学支持向量机SVM算法之理论篇1

    一步步教你轻松学支持向量机SVM算法之理论篇1 (白宁超 2018年10月22日10:03:35) 摘要:支持向量机即SVM(Support Vector Machine) ,是一种监督学习算法,属于 ...

  3. Java密码体系结构简介:Java Cryptography Architecture (JCA) Reference Guide

    来自Java官方的文档,作备忘使用. 简介: Java平台非常强调安全性,包括语言安全,密码学,公钥基础设施,认证,安全通信和访问控制. JCA是平台的一个主要部分,包含一个“提供者”体系结构和一组用 ...

  4. 【Inno Setup】添加许可协议,并默认选中我同意按钮

      [Setup] ; xkfile.txt文件不能为空 LicenseFile=C:\Documents and Settings\Administrator\桌面\smqh\xkfile.txt ...

  5. C++ OpenMp的并行编程

    基于OpenMp的并行编程 功能:并行处理比较耗时的for循环 在OpenMP中,对for循环并行化的任务调度使用schedule子句来实现: 使用格式:schedule(type[,size]) t ...

  6. 【转】Java并发的AQS原理详解

    申明:此篇文章转载自:https://juejin.im/post/5c11d6376fb9a049e82b6253写的真的很棒,感谢老钱的分享. 打通 Java 任督二脉 —— 并发数据结构的基石 ...

  7. Selenium Web 自动化

    1 Selenium Web 自动化 - Selenium(Java)环境搭建 2 Selenium Web 自动化 - 如何找到元素 3 Selenium Web 自动化 - Selenium常用A ...

  8. office2007每次打开都要配置文件,怎么取消配置(可行)

    取消打开软件进行配置的方法 打开“我的电脑”——“C盘”— —“Program Files\Common Files\ Microsoft Shared\OFFICE12\Office Setup C ...

  9. linux 查找并kill进程

    以php以关键字查找进程 $ ps aux | grep php root             32957   0.0  0.1  2470904   8908 s002  S+    4:53下 ...

  10. Gephi 网络图可视化工具

      官网:         https://gephi.org/   背景:         Gephi 是一款开源,免费, 跨平台的的graph 和 network 可视化工具,同时也提供了数据挖掘 ...