小白学 Python(15):基础数据结构(集合)(下)
人生苦短,我选Python
前文传送门
集合内置方法
集合和列表、字典、元组等一样,都提供了很多的内置方法。
既然是集合,那我们先看下这张经典的韦恩图(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 上,方便大家取用。
小白学 Python(15):基础数据结构(集合)(下)的更多相关文章
- 小白学 Python(14):基础数据结构(集合)(上)
人生苦短,我选Python 前文传送门 小白学 Python(1):开篇 小白学 Python(2):基础数据类型(上) 小白学 Python(3):基础数据类型(下) 小白学 Python(4):变 ...
- 小白学 Python(10):基础数据结构(列表)(下)
人生苦短,我选Python 前文传送门 小白学 Python(1):开篇 小白学 Python(2):基础数据类型(上) 小白学 Python(3):基础数据类型(下) 小白学 Python(4):变 ...
- 小白学 Python(13):基础数据结构(字典)(下)
人生苦短,我选Python 前文传送门 小白学 Python(1):开篇 小白学 Python(2):基础数据类型(上) 小白学 Python(3):基础数据类型(下) 小白学 Python(4):变 ...
- 小白学 Python(17):基础数据类型(函数)(下)
人生苦短,我选Python 前文传送门 小白学 Python(1):开篇 小白学 Python(2):基础数据类型(上) 小白学 Python(3):基础数据类型(下) 小白学 Python(4):变 ...
- 小白学 Python(24):Excel 基础操作(下)
人生苦短,我选Python 前文传送门 小白学 Python(1):开篇 小白学 Python(2):基础数据类型(上) 小白学 Python(3):基础数据类型(下) 小白学 Python(4):变 ...
- 小白学 Python(9):基础数据结构(列表)(上)
人生苦短,我选Python 前文传送门 小白学 Python(1):开篇 小白学 Python(2):基础数据类型(上) 小白学 Python(3):基础数据类型(下) 小白学 Python(4):变 ...
- 小白学 Python(11):基础数据结构(元组)
人生苦短,我选Python 前文传送门 小白学 Python(1):开篇 小白学 Python(2):基础数据类型(上) 小白学 Python(3):基础数据类型(下) 小白学 Python(4):变 ...
- 小白学 Python(12):基础数据结构(字典)(上)
人生苦短,我选Python 前文传送门 小白学 Python(1):开篇 小白学 Python(2):基础数据类型(上) 小白学 Python(3):基础数据类型(下) 小白学 Python(4):变 ...
- 小白学 Python(6):基础运算符(下)
人生苦短,我选Python 前文传送门 小白学 Python(1):开篇 小白学 Python(2):基础数据类型(上) 小白学 Python(3):基础数据类型(下) 小白学 Python(4):变 ...
随机推荐
- FastDfs之TrackerServer的详细配置介绍
# is this config file disabled # false for enabled # true for disabled disabled=false #当前配置是否不可用fals ...
- java多线程技术核心
1.进程的三大特征: 独立性:拥有自己的独立的地址空间,一个进程不可以直接去访问其他进程的地址空间. 动态性:是一个系统中活动的指令的集合. 并发性:单个进程可以在多个处理器上并发进行,互不影响. 2 ...
- java基础之读取文件方法大全
1.按字节读取文件内容2.按字符读取文件内容3.按行读取文件内容 4.随机读取文件内容 public class ReadFromFile { /** * 以字节为单位读取文件,常用于读二进制文件,如 ...
- 【Elasticsearch 搜索之路】(一)什么是 Elasticsearch?
本篇文章对 Elasticsearch 做了基本介绍,在后续将通过专栏的方式持续更新,本系列以 Elasticsearch7 作为主要的讲解版本,欢迎各位大佬指正,共同学习进步! 一般涉及大型数据库的 ...
- Spring Boot (十一): Spring Boot 定时任务
在实际的项目开发工作中,我们经常会遇到需要做一些定时任务的工作,那么,在 Spring Boot 中是如何实现的呢? 1. 添加依赖 在 pom.xml 文件中只需引入 spring-boot-sta ...
- vue运行报错webpack-dev-server: command not found
翻译过来就是: 'webpack-dev-server' 不是内部或外部命令,也不是可运行的程序 解决方法: 然后总结下成功的步骤: 1. 直接在项目目录下: cnpm install npm run ...
- ELK日志分析系统(3)-logstash数据处理
1. 概述 logspout收集数据以后,就会把数据发送给logstash进行处理,本文主要讲解logstash的input, filter, output处理 2. input 数据的输入处理 支持 ...
- spring5 源码深度解析----- Spring事务 是怎么通过AOP实现的?(100%理解Spring事务)
此篇文章需要有SpringAOP基础,知道AOP底层原理可以更好的理解Spring的事务处理. 自定义标签 对于Spring中事务功能的代码分析,我们首先从配置文件开始人手,在配置文件中有这样一个配置 ...
- 深入理解SpringCloud之Gateway
虽然在服务网关有了zuul(在这里是zuul1),其本身还是基于servlet实现的,换言之还是同步阻塞方式的实现.就其本身来讲它的最根本弊端也是再此.而非阻塞带来的好处不言而喻,高效利用线程资源进而 ...
- POJ - 3646 The Dragon of Loowater
Once upon a time, in the Kingdom of Loowater, a minor nuisance turned into a major problem. The shor ...