Python集合之set和frozenset的使用详解

yizhihongxing

Python集合之set和frozenset的使用详解

简介

Python中的集合(set)是无序且元素不可重复的数据结构。Python内置了两种集合数据类型,分别是set和frozenset。其中set是可变的,而frozenset是不可变的。

set类型

创建set

可以使用花括号{}或set()函数来创建一个set。

>>> # 使用花括号创建set
>>> set1 = {1, 2, 3}
>>> print(set1)
{1, 2, 3}

>>> # 使用set()函数创建set
>>> set2 = set()
>>> set2.add('a')
>>> set2.add('b')
>>> set2.add('c')
>>> print(set2)
{'b', 'a', 'c'}

set的基本操作

集合与其它容器类型如列表的操作类似,支持添加、删除、判断元素是否在集合中、求交集、并集等操作。

>>> set1 = {1, 2, 3}
>>> set1.add(4) # 添加元素
>>> set1
{1, 2, 3, 4}

>>> set1.remove(4) # 移除元素
>>> set1
{1, 2, 3}

>>> 2 in set1 # 判断元素是否在集合中
True

>>> set2 = {3, 4, 5}
>>> set1.intersection(set2) # 求交集
{3}

>>> set1.union(set2) # 求并集
{1, 2, 3, 4, 5}

frozenset类型

frozenset和set的用法基本相同,区别在于frozenset是不可变类型。这意味着frozenset无法进行添加、删除、更新等操作。

创建frozenset

可以使用frozenset()函数来创建一个frozenset。

>>> fs1 = frozenset([1, 2, 3, 4, 5])
>>> print(fs1)
frozenset({1, 2, 3, 4, 5})

frozenset的基本操作

由于frozenset是不可变类型,因此不能进行添加、删除、更新等操作,只能进行判断元素是否在集合中、求交集、并集等操作。

>>> fs1 = frozenset([1, 2, 3])
>>> fs2 = frozenset([2, 3, 4])
>>> 2 in fs1 # 判断元素是否在集合中
True

>>> fs1.intersection(fs2) # 求交集
frozenset({2, 3})

>>> fs1.union(fs2) # 求并集
frozenset({1, 2, 3, 4})

结语

本文简要介绍了Python中集合(set)和不可变集合(frozenset)的用法。集合和不可变集合可以帮助我们快速地进行数据去重、交、并。在实际开发过程中,适当地应用集合和不可变集合能够提高代码的运行效率。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python集合之set和frozenset的使用详解 - Python技术站

(0)
上一篇 2023年5月13日
下一篇 2023年5月13日

相关文章

  • Windows平台Python编程必会模块之pywin32介绍

    下面就详细讲解“Windows平台Python编程必会模块之pywin32介绍”的完整攻略: 什么是pywin32? pywin32是Python语言在Windows平台上的一个重要扩展模块,提供了大量的Windows API调用接口,提供了一种方便的方式编写Windows程序。通过该模块,我们可以调用Windows操作系统中的COM组件、Windows A…

    python 2023年5月30日
    00
  • Python装饰器实现方法及应用场景详解

    Python装饰器实现方法及应用场景详解 1. 概述 装饰器是 Python 中非常重要的概念,几乎所有 Python 框架都大量使用到了装饰器。它可以用于功能增强、日志处理、输入验证和安全控制等场景。 装饰器本质上是一个 Python 函数或类,并在不改变原函数/方法定义的基础上对其进行增强。Python 中借助函数式编程的特点,可以很方便地实现装饰器。 …

    python 2023年6月3日
    00
  • python爬虫爬取网页表格数据

    想要爬取网页表格数据,我们通常需要经历以下几个步骤: 确认数据来源和目标网站,并分析目标网站的页面结构,找到表格数据所在的HTML标签和CSS类或ID。 使用Python中的requests库向目标网站发送HTTP请求,获取网页HTML文档。 使用Python中的BeautifulSoup库对HTML文档进行解析,并定位所需要的表格数据所在的标签。 将表格数…

    python 2023年5月14日
    00
  • Python著名游戏实战之方块连接 我的世界

    Python著名游戏实战之方块连接 我的世界 是一款基于 Python 和 Minecraft 的游戏,玩家可以在游戏中利用 Python 语言进行编程,从而操作 Minecraft 中的方块、实现自动化等功能。以下是该游戏的完整攻略: 环境准备 首先需要在电脑上安装好 Minecraft 游戏和 Python 编程语言,并且安装好相关的库和工具。在安装过程…

    python 2023年6月3日
    00
  • python字符串连接方法分析

    Python字符串连接方法分析 字符串连接在Python中非常常用,有很多方法可以实现字符串连接的功能。在本篇攻略中,我们将详细介绍Python中常用的字符串连接方法,并提供一些示例说明。 1. “+”操作符 使用“+”操作符可以将两个字符串连接成一个新字符串。该操作符可以同时连接两个字符串,也可以连接多个字符串。 示例代码如下: str1 = "…

    python 2023年6月7日
    00
  • Python&Matlab实现灰狼优化算法的示例代码

    Python&Matlab实现灰狼优化算法的示例代码 灰狼优化算法(Grey Wolf Optimizer,GWO)是一种基于自然界中灰狼群体行为优化算法。该算法模拟了灰狼群体中的领袖、副领袖和普通狼的行为,通过不断地迭代找最优解。灰狼优化算法具有收敛速度快、全局搜索能力强等优点,在优化问题中得到了广泛的应用。 Python实现灰狼优化算法的示例代码…

    python 2023年5月14日
    00
  • Python并发编程协程(Coroutine)之Gevent详解

    Python并发编程协程(Coroutine)之Gevent详解 什么是协程 协程是一种轻量级的线程,它的调度完全由用户控制。协程拥有自己的寄存器上下文和栈,因此切换不同协程的代价很小。协程相比线程,最大的优势就是协程切换不需要进入内核态,只需要保存和恢复上下文即可。 Gevent是什么 Gevent是一个基于协程的Python网络编程库,它的特点是使用了g…

    python 2023年6月5日
    00
  • 如何在Python中进行单元测试?

    在Python中进行单元测试,通常使用unittest模块来实现。 编写测试代码 第一步是编写测试代码。测试代码应该覆盖您要测试的每个功能。在unittest中,测试代码必须是一个派生自unittest.TestCase的类,它包含测试用例。 其中,一个测试用例通常包括三个步骤:准备测试数据、执行测试代码、比较测试结果。在unittest中,可以使用setU…

    python 2023年4月19日
    00
合作推广
合作推广
分享本页
返回顶部