人生苦短,我选Python

前文传送门

小白学 Python(1):开篇

小白学 Python(2):基础数据类型(上)

小白学 Python(3):基础数据类型(下)

小白学 Python(4):变量基础操作

小白学 Python(5):基础运算符(上)

小白学 Python(6):基础运算符(下)

小白学 Python(7):基础流程控制(上)

小白学 Python(8):基础流程控制(下)

小白学 Python(9):基础数据结构(列表)(上)

小白学 Python(10):基础数据结构(列表)(下)

小白学 Python(11):基础数据结构(元组)

小白学 Python(12):基础数据结构(字典)(上)

小白学 Python(13):基础数据结构(字典)(下)

小白学 Python(14):基础数据结构(集合)(上)

集合内置方法

集合和列表、字典、元组等一样,都提供了很多的内置方法。

既然是集合,那我们先看下这张经典的韦恩图(Venn diagram):

具体的实现代码如下:

set1 = {1, 2, 3, 4, 5, 6}
set2 = {4, 5, 6, 7, 7, 9} # 求交集
set3 = set1.intersection(set2)
print('交集:', set3) # 求并集
set4 = set1.union(set2)
print('并集:', set4) # 做差
set5 = set1.difference(set2)
print('做差:', set5)

结果如下:

交集: {4, 5, 6}
并集: {1, 2, 3, 4, 5, 6, 7, 9}
做差: {1, 2, 3}

set.add()

作用:为集合添加元素

set6 = {1, 2, 3}
set6.add(4)
print(set6)
set6.add('python')
print(set6)
set6.add((1, 2))
print(set6)

结果如下:

{1, 2, 3, 4}
{1, 2, 3, 4, 'python'}
{(1, 2), 1, 2, 3, 4, 'python'}

set.update()

作用:给集合添加元素

set7 = {1, 2}
set7.update({3, 4, 'python', (4, 5)})
print(set7)

结果如下:

{1, 2, 3, 4, 'python', (4, 5)}

好像看起来 update()add() 功能是一样的,区别在于 add() 参数只能是单个元素,而 update() 中的参数是一个 set 集合。

set.pop()

作用:随机移除元素。

set7.pop()
print(set7)

结果如下:

{2, 3, 4, 'python', (4, 5)}

随机删除,个人感觉功能可能有点没什么实际作用,毕竟是随机删除。。。

set.remove()

作用:移除指定元素。

相比较上面 pop() 的随机删除,在删除元素的时候更多的我们是使用的 remove() 或者下面我们将要介绍的 discard()

set8 = {1, 2, 3, 4}
set8.remove(4)
print(set8)

结果如下:

{1, 2, 3}

如果删除的元素不存在,则会直接报错。

set8.remove(9)

结果如下:

Traceback (most recent call last):
File "F:/project/python-learning/base-data-set/Demo1.py", line 34, in <module>
set8.remove(9)
KeyError: 9

set.discard()

作用:删除集合中指定的元素,元素不存在则什么都不做。

set8.discard(9)
print(set8)

结果如下:

{1, 2, 3}

set.clear()

作用:清除集合中的所有元素,并不会清除集合。

set9 = {1, 2, 3}
set9.clear()
print(set9)

结果如下:

set()

set.isdisjoint()

作用:判断两个集合是否包含相同的元素,如果没有返回 True,否则返回 False。

set10 = {1, 2, 3}
set11 = {1, 2}
set12 = {4, 5}
print(set10.isdisjoint(set11))
print(set10.isdisjoint(set12))

结果如下:

False
True

set.issubset()

作用:判断指定集合是否为该方法参数集合的子集。

print(set11.issubset(set10))
print(set12.issubset(set10))

结果如下:

True
False

set.issuperset()

作用:判断该方法的参数集合是否为指定集合的子集。

print(set10.issuperset(set11))
print(set10.issuperset(set12))

结果如下:

True
False

注意哦, issubset()issuperset() 是不一样的哦,看起来都是判断子集,但是参数的含义是不一样的。

各位同学一定要自己动手敲代码哦~~

示例代码

本系列的所有代码小编都会放在代码管理仓库 Github 和 Gitee 上,方便大家取用。

示例代码-Github

示例代码-Gitee

小白学 Python(15):基础数据结构(集合)(下)的更多相关文章

  1. 小白学 Python(14):基础数据结构(集合)(上)

    人生苦短,我选Python 前文传送门 小白学 Python(1):开篇 小白学 Python(2):基础数据类型(上) 小白学 Python(3):基础数据类型(下) 小白学 Python(4):变 ...

  2. 小白学 Python(10):基础数据结构(列表)(下)

    人生苦短,我选Python 前文传送门 小白学 Python(1):开篇 小白学 Python(2):基础数据类型(上) 小白学 Python(3):基础数据类型(下) 小白学 Python(4):变 ...

  3. 小白学 Python(13):基础数据结构(字典)(下)

    人生苦短,我选Python 前文传送门 小白学 Python(1):开篇 小白学 Python(2):基础数据类型(上) 小白学 Python(3):基础数据类型(下) 小白学 Python(4):变 ...

  4. 小白学 Python(17):基础数据类型(函数)(下)

    人生苦短,我选Python 前文传送门 小白学 Python(1):开篇 小白学 Python(2):基础数据类型(上) 小白学 Python(3):基础数据类型(下) 小白学 Python(4):变 ...

  5. 小白学 Python(24):Excel 基础操作(下)

    人生苦短,我选Python 前文传送门 小白学 Python(1):开篇 小白学 Python(2):基础数据类型(上) 小白学 Python(3):基础数据类型(下) 小白学 Python(4):变 ...

  6. 小白学 Python(9):基础数据结构(列表)(上)

    人生苦短,我选Python 前文传送门 小白学 Python(1):开篇 小白学 Python(2):基础数据类型(上) 小白学 Python(3):基础数据类型(下) 小白学 Python(4):变 ...

  7. 小白学 Python(11):基础数据结构(元组)

    人生苦短,我选Python 前文传送门 小白学 Python(1):开篇 小白学 Python(2):基础数据类型(上) 小白学 Python(3):基础数据类型(下) 小白学 Python(4):变 ...

  8. 小白学 Python(12):基础数据结构(字典)(上)

    人生苦短,我选Python 前文传送门 小白学 Python(1):开篇 小白学 Python(2):基础数据类型(上) 小白学 Python(3):基础数据类型(下) 小白学 Python(4):变 ...

  9. 小白学 Python(6):基础运算符(下)

    人生苦短,我选Python 前文传送门 小白学 Python(1):开篇 小白学 Python(2):基础数据类型(上) 小白学 Python(3):基础数据类型(下) 小白学 Python(4):变 ...

随机推荐

  1. Mysql触发器实例分析

    所谓触发器,就是在定义在表对象上.当触发器所在的表出现指定的事件时,会触发对应表的delete update insert的操作.说的有点绕口,其实就是到监视某种情况,然后去触发某种操作. 触发器是如 ...

  2. 把功能强大的Spring EL表达式应用在.net平台

    Spring EL 表达式是什么? Spring3中引入了Spring表达式语言—SpringEL,SpEL是一种强大,简洁的装配Bean的方式,他可以通过运行期间执行的表达式将值装配到我们的属性或构 ...

  3. Scala 多继承顺序

    Trait多继承顺序: 准则: 如果有超类,则先调用超类的函数. 如果混入的trait有父trait,它会按照继承层次先调用父trait的构造函数. 如果有多个父trait,则按顺序从左到右执行. 所 ...

  4. ELK 学习笔记之 Logstash之codec配置

    Logstash之codec: Logstash处理流程: input=>decode=>filter=>encode=>output 分类: Plain编码: input{ ...

  5. MongoDB 学习笔记之 DBRef

    DBRef: MongoDB建模有两种方式,一种是内嵌(Embed),另一种是连接(Link).内嵌比较好理解,就是字段内容是个数组,数组内再包含文档,而我们今天介绍的是另一种,称为链接DBRef.由 ...

  6. 02 Pycharm的安装

    一.初试 在官网http://www.jetbrains.com/pycharm安装最新版本的pycharm软件,版本为 2019.2.3,根据网上教程发现安装不了,现在貌似还没破解,退而安装 201 ...

  7. C#的FTP服务器源代码

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...

  8. SpringBootSecurity学习(24)前后端分离版之OAuth2.0 应用登记

    应用登记 一个应用要求 OAuth 授权,必须先到对方网站登记,让对方知道是谁在请求.举个例子,下面是github的登记页面: https://github.com/settings/applicat ...

  9. 浅谈分布式事务与TX-LCN

    最近做项目使用到了分布式事务,下面这篇文章将给大家介绍一下对分布式事务的一些见解,并讲解分布式事务处理框架TX-LCN的执行原理,初学入门,错误之处望各位不吝指正. 什么情况下需要使用分布式事务? 使 ...

  10. B-概率论-条件概率

    目录 条件概率 一.条件概率简介 二.条件概率推广 更新.更全的<机器学习>的更新网站,更有python.go.数据结构与算法.爬虫.人工智能教学等着你:https://www.cnblo ...