广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python中使用Frozenset对象的案例详解
  • 744
分享到

Python中使用Frozenset对象的案例详解

2024-04-02 19:04:59 744人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

目录关于Frozensets创建一个新的Frozenset对象一旦创建了Frozenset,你就不能修改它了与 Frozensets 一起使用的方法Frozenset可以被转换为其他

这篇文章将介绍在python中使用 "frozenset "函数的指南,该函数返回一个新的frozenset类型的Python对象。这些对象类似于Python中的set对象,但有一些关键的区别。本文的所有代码样本都是在ubuntu 21.04上用Python 3.9.5测试的。

关于Frozensets

frozenset 函数接收一个可迭代类型的 Python 对象的参数,并返回一个新的 frozenset 类型的 Python 对象。一个 frozenset 类型的对象是一个可散列的、不可改变的 Python 对象,其元素在整个生命周期内是冻结的或不可改变的。与元素可以随时改变的集合类型的Python对象相反,frozenset中的所有项目都保持不变。frozensets 的用法可以通过例子得到最好的理解。下面将解释其中的一些。

创建一个新的Frozenset对象

要获得一个新的 frozenset类型的对象,只需提供任何可迭代的类型作为frozenset函数的可选参数。下面是一个代码示例。

l = [1, 2, 3, 4]
fset = frozenset(l)
print (fset)
print (type(fset))

代码中的第一条语句定义了一个新的列表,它被简单地称为 "l"。接下来,通过调用frozenset函数并提供列表作为参数,创建了一个新的frozenset对象。运行上述代码示例后,你应该得到以下输出。

frozenset({1, 2, 3, 4})
<class 'frozenset'>

正如你在输出中看到的,fset是一个frozenset类型的对象,它使用了Python中set也使用的大括号语法。Frozenset只包含唯一的项目,因为不允许有重复的项目,这一点与Python的set类型对象非常相似。每个frozenset类型的对象都是一个 Python 集合,但反之亦然,因为集合项可以通过调用一些方法来改变。注意,你可以通过调用没有任何参数的frozenset函数来创建一个空的frozenset

一旦创建了Frozenset,你就不能修改它了

如前所述,一个frozenset类型的对象有一些项目,在其生命周期内不会改变。虽然你可以用 frozenset 类型对象使用 Python 集合的方法,但是如果你试图使用改变原始frozenset对象本身的方法,就会出现错误。下面是一个例子。

l = [1, 2, 3, 4]
new_set = set(l)
new_set.remove(1)
print (new_set)
fset = frozenset(l)
fset.remove(1)

在上面的代码示例中,有两条语句调用了集合类型对象的 "删除"方法。虽然一个项目被成功地从 "new_set"中删除,但当对 "fset"调用remove方法时,却抛出了一个错误。运行上述代码示例后,你应该得到以下输出。

{2, 3, 4}
Traceback (most recent call last):
  File "main.py", line 9, in <module>
    fset.remove(1)
AttributeError: 'frozenset' object has no attribute 'remove'

其他类似的方法,如 "add"、"pop"、"clear"、"discard "等,对forzensets不起作用。

与 Frozensets 一起使用的方法

所有不修改集合项的 Python 集合方法都对frozenset类型的对象有效。所以你可以比较两个frozenset的等价或不等价,迭代/循环它们,获得两个frozenset之间的共同或唯一元素,等等。下面是一个例子,显示了一些与frozensets有关的方法。

fset1 = frozenset([1, 2, 3, 4])
fset2 = frozenset([3, 4, 5, 6])
print (fset1.intersection(fset2))
print (fset1.uNIOn(fset2))
print (fset1.difference(fset2))
print (len(fset1))
print (len(fset2))

这些代码是不言自明的。一些不改变原始frozensets值的方法已经被调用。这些方法主要用于比较两个不同frozensets的元素。运行上述代码样本后,你应该得到以下输出。

frozenset({3, 4})
frozenset({1, 2, 3, 4, 5, 6})
frozenset({1, 2})
4
4

其他一些处理冻结集的方法有:"issubset"、"issuperset"、"symmetric_difference"、"copy",等等。像">"、"<"、">="和"<="这样的等价运算符也适用于frozenset类型对象。

Frozenset可以被转换为其他可迭代类型

你可以通过调用它们的主构造函数将frozenset类型的对象转换为其他可迭代的对象。下面的代码示例显示了将frozenset类型对象转换为list、tuple和set类型对象。

fset = frozenset([1, 2, 3, 4])
print (list(fset))
print (tuple(fset))
print (set(fset))

运行上述代码样本后,你应该得到以下输出。

[1, 2, 3, 4]

(1, 2, 3, 4)

{1, 2, 3, 4}

Frozenset使用案例

由于frozenset对象只不过是不可改变的/不可变的集合类型的 Python 对象,你可能会想知道它们的效用,因为集合总是可以被用来代替它们。frozenset最明显的用例是用于声明具有独特元素的集合类型对象,而没有在代码中意外改变它们的风险。Frozenset类型的对象可以被用作字典的键,而集合则不能用于同样的目的。由于frozenset是可散列的,它们可以在集合内使用,而集合不能插入到另一个集合中。看一下下面的代码。

fset = frozenset({4, 5})
s = {1, 2, fset}
print (s)
s = {1, 2, {4, 5}}

在第二条语句中,一个frozenset已经在创建过程中被添加到一个集合中。在最后一条语句中,一个集合类型的对象被用在另一个集合里面。运行上述代码示例后,你应该得到以下输出。

{frozenset({4, 5}), 1, 2}
Traceback (most recent call last):
  File "main.py", line 27, in <module>
    s = {1, 2, {4, 5}}
TypeError: unhashable type: 'set'

正如你在输出中看到的,forzensets可以被添加到其他集合中。另一方面,将一个集合添加到另一个集合中会产生一个错误,因为集合只接受可散列类型的项目。

总结

Frozensets提供了一种创建不可变的集合的方法。它们只接受唯一的元素,并且是可散列类型的对象,所以它们可以在其他只接受可散列对象作为子对象的 Python 对象中使用。

到此这篇关于如何在Python中使用Frozenset对象的文章就介绍到这了,更多相关Python Frozenset对象内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Python中使用Frozenset对象的案例详解

本文链接: https://www.lsjlt.com/news/120156.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python中使用Frozenset对象的案例详解
    目录关于Frozensets创建一个新的Frozenset对象一旦创建了Frozenset,你就不能修改它了与 Frozensets 一起使用的方法Frozenset可以被转换为其他...
    99+
    2022-11-11
  • Python集合之set和frozenset的使用详解
    目录简介构造基本使用交集、并集、差集、对称差集无交集、子集、超集运算符可用于 set 的操作简介 集合对象 set 是由具有唯一性的可哈希对象组成的无序多项集,如 list 不能哈希...
    99+
    2022-11-10
  • python面向对象的使用案例
    这篇文章给大家分享的是有关python面向对象的使用案例的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。面向对象1. 创建支持With语句的对象我们都知道如何使用打开或关闭语句,例如打开文件或获取锁,但是如何实现自...
    99+
    2023-06-27
  • Python中的类对象示例详解
    抽象特点 Python 一切皆对象,基于此概念,对 类 class 有以下特点: 类与实例的属性 类对象创建可选择定义类属性,创建实例对象时,实例属性自动执行类的__init__方...
    99+
    2022-11-12
  • python中session的使用案例详解
    目录python中session的使用扩展:Selenium如何获取cookies保存起来用于下次访问一、获取cookie二、加载cookiepython中session的使用 使用...
    99+
    2023-05-19
    Selenium获取cookies Selenium获取cookies保存 python session使用
  • python获取对象信息的实例详解
    1、获取对象类型,基本类型可以用type()来判断。 >>> type(123) <class 'int'> >>> type('str') <class '...
    99+
    2022-06-02
    python 对象信息
  • Python中return用法案例详解
    python中return的用法 1、return语句就是把执行结果返回到调用的地方,并把程序的控制权一起返回 程序运行到所遇到的第一个return即返回(退出def块),不会再运行...
    99+
    2022-11-12
  • pandas中series对象map方法的使用案例
    小编给大家分享一下pandas中series对象map方法的使用案例,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!python的五大特点是什么python的五大特...
    99+
    2023-06-14
  • 【Python详解】Python类的详细定义与使用案例
    大家好,我是洲洲,欢迎关注,一个爱听周杰伦的程序员。关注公众号【程序员洲洲】即可获得10G学习资料、面试笔记、大厂独家学习体系路线等…还可以加入技术交流群欢迎大家在CSDN后台私信我! 本文目...
    99+
    2023-09-04
    python python类 类的定义 python类的使用 python类的定义
  • python数据XPath使用案例详解
    目录XPathXPath使用方法xpath解析原理:安装lxml案例—58二手房XPath XPath即为XML路径语言(XML Path Language),它是一种用来确定XML...
    99+
    2022-11-12
  • 实例详解python类对象的析构释放
    本篇文章给大家带来了关于Python的相关知识,其中主要介绍了python类对象的析构释放代码演示,文章围绕主题展开详细的内容介绍,下面一起来看一下,希望对大家有帮助。前端(vue)入门到精通课程:进入学习【相关推荐:Python3视频教程...
    99+
    2022-09-08
  • python中mpi4py的所有基础使用案例详解
    python中mpi4py的基础使用 大多数 MPI 程序都可以使用命令 mpiexec 运行。在实践中,运行 Python 程序如下所示: $ mpiexec -n 4 pytho...
    99+
    2022-11-11
  • 详解Pandas中GroupBy对象的使用
    目录使用 Groupby 三个步骤将原始对象拆分为组按组应用函数AggregationTransformationFiltration整合结果总结今天,我们将探讨如何在 Python...
    99+
    2022-11-11
  • react 中 mobx的使用案例详解
    1.新建一个mobx.jsx文件 import { useContext } from "react" import MyContext from '../../utils/Cont...
    99+
    2023-05-15
    react mobx使用 react mobx
  • SpringCloudFeign的使用案例详解
    目录Feign简介使用传参拓展配置超时、连接时间日志打印Feign简介 Feign是Netflix开发的⼀个轻量级RESTful的HTTP服务客户端(⽤它来发起请求,远程调⽤的),是...
    99+
    2023-02-09
    Spring Cloud Feign使用 Spring Cloud Feign
  • python中requests库session对象的妙用详解
    在进行接口测试的时候,我们会调用多个接口发出多个请求,在这些请求中有时候需要保持一些共用的数据,例如cookies信息。 妙用1 requests库的session对象能够帮我们跨请求保持某些参数,也会...
    99+
    2022-06-04
    妙用 详解 对象
  • hooks中useEffect()使用案例详解
    常见使用: 获取数据案例: import React, { useState, useEffect } from 'react'; import axios from 'axios'...
    99+
    2022-11-13
  • JavaScriptconsole对象与控制台使用示例详解
    目录1. console对象2. console的静态方法3. 自定义console4. 控制台命令行API4.1 $_4.2 $0-$44.3 $(selector)4.4 $x(...
    99+
    2022-11-13
    JavaScript console对象 JavaScript console控制台
  • C++中std::allocator的使用案例详解
    标准库中包含一个名为allocator的类,允许我们将分配和初始化分离。使用allocator通常会提供更好的性能和更灵活的内存管理能力。    ...
    99+
    2022-11-12
  • python基础中的文件对象详解
    目录一、python读取和写入文件内容二、文件对象的写入三、实现文件内容的拷贝四、通过文件对象cmd.exe对命令行工具进行复制总结一、python读取和写入文件内容 任务:在cmd...
    99+
    2022-11-12
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作