Python课堂12——六大数据结构之集合

这篇具有很好参考价值的文章主要介绍了Python课堂12——六大数据结构之集合。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


前言

Python中的数据结构马上就要结束了,今天我们来学习Python中六大数据结构的最后一部分集合,坚持就是胜利go!


一、集合是什么?

集合是一种数据类型,用于存储一组唯一的元素。集合可以通过花括号{}来定义,元素之间使用逗号分隔。与列表和元组不同,集合中的元素是无序的,且不允许重复。

语法:语法:set()/{元素,元素2}

集合具备三个特点
1.元素必须是不可变类型(字符串 数值 元祖)
2.唯一性 自动去重
3.无序(没有索引,没有办法通过索引对集合进行修改和查询的操作)

代码演示:

s = {1, 1.5, 'a', 'c', 'c', 'a'}
print(s)  # 每次输出的顺序不一样,并且会自动去重    {1, 'a', 1.5, 'c'}

二、集合的常见操作

1.创建空集合

1.1 集合.add():添加元素,整体添加

# 因为集合和字典的符号相同,所以创建集合的时候要特别注意
se = {}  # 空字典
se1 = set()  # 空集合

2.基本操作

2.1 增
2.1.1 集合.add():添加元素,整体添加

代码演示:

se = {1, 2, 3}
se.add('abc')
print(se)  # {1, 2, 3, 'abc'}

2.1.2 集合.update(可迭代对象):添加元素,分散添加

代码演示:

se = {1, 2, 3}
se.update('abc')
print(se)
# se.update('e', 'f', 2, 9)  # TypeError: 'int' object is not iterable
se.update('e', 'f', [9, 6, 5])  # 添加是可迭代对象,注意里面不能再有列表
print(se)
# 注意:只能添加不可变类型,列表、元组、字典等

2.2 删
2.2.1 remove():删除指定的元素,如果集合会有就会删除,没有就会报错

代码演示:

se = {1, 2, 3}
se.remove(1)
print(se)  # {2, 3}

2.2.2 discard() 删除指定的元素,有就会删除,没有就不会发生任何改变,不会报错

代码演示:

se = {1, 2, 3}
se.discard(1)
print(se)  # {2, 3}

2.2.3 pop() 删除并返回任意一个元素,如果集合为空,则引发 KeyError 异常
语法:set.pop()
参数: 该函数不接受任何参数。
代码演示:

set1 = {'a', 'b', 'c', 'd'}
answer = set1.pop()
print(answer)  # d
print(set1)  # {'b', 'a', 'c'}

2.2.4 clear() 方法删除集合中的所有元素:
代码演示:

set1 = {'a', 'b', 'c', 'd'}
set1.clear()
print(set1)  # set()

3.成员运算符(in; not in)

这个之前用过好多次了,就不再重复了

4.计算集合的长度——len()

代码演示:

se = {1, 2, 3}
print(len(se))  # 3

5.复制集合——copy()

代码演示:

se = {1, 2, 3}
new_se = se.copy()

6.集合的集合运算

6.1 并集:union() 方法或 | 运算符:
set1.union(set2) 或 set1 | set2
代码演示:

set1 = {'a', 'b', 'c', 'd'}
set2 = {'b', 'c', 'd', 'f'}
print(set1 | set2)  # {'c', 'd', 'b'}

6.2 交集:intersection() 方法或 & 运算符:
set1.intersection(set2) 或 set1 & set2
代码演示:

set1 = {'a', 'b', 'c', 'd'}
set2 = {'b', 'c', 'd', 'f'}
print(set1 & set2)  # {'c', 'f', 'd', 'b', 'a'}

6.3 差集:difference() 方法或 - 运算符:集合a中有的但是集合b中没有的
set1.difference(set2) 或 set1 - set2
代码演示:

set1 = {'a', 'b', 'c', 'd'}
set2 = {'b', 'c', 'd', 'f'}
print(set1 - set2)  # {'a'}

6.4 对称差集:symmetric_difference() 方法或 ^ 运算符:set1.symmetric_difference(set2) 或 set1 ^ set2
代码演示:

set1 = {'a', 'b', 'c', 'd'}
set2 = {'b', 'c', 'd', 'f'}
print(set1 ^ set2)  # {'f', 'a'}

总结

历经将近两个星期的学习,关于python中的数据结构我们终于学完了,这也算是python中最基础的东西,打好基础,迈出了这一步,我们就能够在未来学习更加深奥的东西,让我们一起继续学习吧!文章来源地址https://www.toymoban.com/news/detail-834670.html

到了这里,关于Python课堂12——六大数据结构之集合的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Python中列表,元组,集合,字典哪些数据结构支持双向索引?

    在Python中,我们常用的内置数据结构有列表、元组、集合和字典。其中,只有列表和元组支持双向索引,可以通过正向索引和负向索引访问元素。而字典和集合不支持索引。 在Python中,内置的数据结构主要包括: 列表(list):有序,可变的数据集合,可以通过索引访问元素。 元组(tuple)

    2024年02月08日
    浏览(50)
  • 【100天精通python】Day9:数据结构_字典、集合

    目录  目录 1 字典      1.1 字典的基本操作示例 1.2 字典推导式 2 集合 

    2024年02月15日
    浏览(37)
  • python常见的数据类型与数据结构(一)数字类型 字符串类型 布尔类型 列表 集合 字典 的定义与常规操作方法

    数字类型有int(整数),float(浮点数)和complex(复数型),其中int与float被大家所常用并且可以使用int()和float()函数相互转换。如果字符串只包含数字和小数点也可以被这两种函数强制转换。复数型,则少被人们使用,大都是用在数学公式和物理公式的计算上。 字符串类型较为简单

    2024年02月21日
    浏览(39)
  • 数据结构——六大排序 (插入,选择,希尔,冒泡,堆,快速排序)

    1.1基本思路 把待排序的记录按其关键码值的大小逐个插入到一个已经排好序的有序序列中,直到所有的记录插入完为止,得到一个新的有序序列  我们熟知的斗地主就是一个插入排序 我们这里将一个无序数组变成有序数组 插入排序时间复杂度分析 最优情况:待排序的数组是

    2024年02月17日
    浏览(69)
  • 十三、集合进阶——单列集合 及 数据结构

    List系列集合 :添加的元素是有序、可重复、有索引。 Set系列集合 :添加的元素是无序、不重复、无索引。 1. Collection Collection 是单列集合的 祖宗 接口,它的功能是 全部单列集合都可以继承使用的。 Contains方法 细节 : 2.Collection 的遍历方式 迭代器遍历 迭代器 不依赖索引

    2024年02月21日
    浏览(33)
  • 探索Java集合框架—数据结构、ArrayList集合

    Java集合的使用相信大家都已经非常得心应手,但是我们怎么做到知其然,更知其所以然这种出神入化的境界呢?我们揭开集合框架底层神秘面纱来一探究竟 目录 一、背景介绍 二、思路方案 数据结构是什么? 数据结构可以分为线性和非线性两种数据结构 线性数据结构: 非

    2024年02月10日
    浏览(31)
  • 【数据结构】 初识集合框架

    这里博主将简单介绍一下集合框架,想要详细了解的可以点击下方链接进行查看 java集合官方教程 Java 集合框架 Java Collection Framework ,又被称为容器 container ,是定义在 java.util 包下的一组接口 interfaces 和其实现类 classes 。 其主要表现为将多个元素 element 置于一个单元中,用于

    2024年02月13日
    浏览(31)
  • Java 数据结构集合

    详细请转到@pdai的博客 1.1 数组 (Array) 数组的优点: 存取速度快 数组的缺点: 事先必须知道数组的长度 插入删除元素很慢 空间通常是有限制的 需要大块连续的内存块 插入删除元素的效率很低 源码分析: 1、底层数据结构是Object 2、构造函数包括无参构造和有参数构造,有参构

    2024年01月24日
    浏览(31)
  • 数据结构与集合源码

    目录 数据结构概述 概述: 数据结构的研究对象(三个): 逻辑结构: 物理结构(存储结构) 运算(相关算法操作) 常见存储结构: 树的理解  经典二叉树 BST(二叉排序树) 平衡二叉树(AVL) 红黑树(RBT)(复杂,不多讲,了解) List源码解析   ArraysList在JDK7和JDK8中的

    2024年04月13日
    浏览(25)
  • 集合中的数据结构

    栈 先进后出 入口跟出口在同一侧 队列 先进先出 入口跟出口在不同的一层 数组 查询快、增删慢 查询快是因为数组的地址是连续的,我们通过数组的首地址就可以找到数组,之后通过数组的下标就可以访问数组的每一个元素。 增删慢是因为数组的长度是固定的,我们增加或

    2024年02月15日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包