小白学 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):变 ...
随机推荐
- ibatis 学习
1.$与#的区别: 用到#和$来获取传的参数值,其中#是将传来的值替换(如果是字符串,会将‘’带着替换,比如上面$value$,用#value#的话,就会出错.#与$的使用区别:$中间的变量就是直接替 ...
- thymeleaf 日期时间格式处理
一.#dates.format()用来格式化日期时间 ${#dates.format(date, 'dd/MMM/yyyy HH:mm')} ${#dates.arrayFormat(datesArr ...
- java后端研发经典面试题总结
垃圾回收算法 1.标记-清除算法 标记-清除算法是最基本的算法,和他的名字一样,分为两个步骤,一个步骤是标记需要回收的对象.在标记完成后统一回收被标记的对象.这个算法两个问题.一个是效率问题,标记和清 ...
- 死磕 java同步系列之终结篇
简介 同步系列到此就结束了,本篇文章对同步系列做一个总结. 脑图 下面是关于同步系列的一份脑图,列举了主要的知识点和问题点,看过本系列文章的同学可以根据脑图自行回顾所学的内容,也可以作为面试前的准备. ...
- JS实现数组排序的方法
前言 排序是计算机内经常进行的一种操作,其目的是将一组“无序”的记录序列调整为“有序”的记录序列,当然排序也是算法中的一种,javascript内置的sort函数是多种排序算法的集合,数组在原数组上进 ...
- ELK系列(二):.net core中使用ELK
ELK安装好后,我们现在.net Core中使用一下,大体思路就是结合NLog日志组件将数据写入ELK中,其它语言同理. ELK的安装还是有些复杂的,我们也可以在Docker中安装ELK:docker ...
- Mac 安装node npm cnpm vue 以及卸载 node 和 npm 的方法 清空npm缓存的方法
S01 安装node(内含npm) 首先,到官网下载长期支持版,截止目前,最新的长期支持版本号是10.16.3 https://nodejs.org/zh-cn/download/ 下载完毕后,安装该 ...
- 【maven的使用】1maven的概念与配置
maven是一个基于java平台的自动化构建工具.构建工具的发展由make->ant->maven->gradle其中gradle还在发展中,使用较少,学习难度比较大,所以目前占据主 ...
- QR 码详解(上)
关于二维码,我查了下资料,现在基本都在用日本的 QR 码,PDF417以及汉信码日常基本看不到.原因在于各方面来说,的确是 QR 码最为优秀.所以我准备写一篇介绍 QR 码的文章,如果是写书,可能不方 ...
- 关于SpringBoot 1.x和2.x版本差别
有点小差别 基本上基于SpringBoot的代码不需要改动,但有些配置属性和配置类,可能要改动,改动原因是 配置和类的更新或者是改名一般正常的MVC,数据库访问这些都不需要改动,下面按照本书章节说明区 ...