Python 的映射数据类型有哪些?零基础小白入门学习必看

python中collections.abc.Mapping 和collections.Mapping的区别 阅读详情

1 映射类关系

Python 的 collections.abc 模块内拥有 Mapping 和 MutableMapping 这两个抽象基类,它们为 dict 和其他类似的类型提供了接口定义。

mutable /ˈmjuːtəbl/ adj. Capable of or subject to change or alteration.

它们之间的类关系如下图所示:

 

箭头从子类指向父类,抽象类和抽象方法的名称以斜体显示。

首先是 Container、Iterable 与 Sized 三大接口,接着 Mapping 接口在继承了前面三大接口的基础上,又定义了一些自有接口。

这些接口定义了构建一个映射类型所需要的接口与方法。

 

2 判定映射类型

可以通过 isinstance() 方法来判定某个对象是不是广义上的映射类型:


 

 

import collections import logging logging.basicConfig(level=logging.DEBUG, format='%(levelname)s - %(message)s') my_dict = {} result = isinstance(my_dict, collections.abc.Mapping) logging.info('result -> %s', result) 复制代码

运行结果:


 

 

INFO - result -> True 复制代码

 

3 可散列的数据类型

Python 标准库里的所有映射类型都是利用 dict 来实现的,它们的键都必须是可散列的数据类型。

可散列的数据类型指的是:在这种数据类型对象的生命周期中,它的散列值是不变的。它会实现 __hash__() 方法与__qe__() 方法,后一种方法是用来与其他键做比较。如果两个对象的散列值相等,那么就可以判定这两个对象相等。

原子不可变的数据类型(如:str、bytes 和数值类型)都是可散列数据类型。frozenset 中只能容纳可散列类型,因此也是可散列数据类型。

frozenset() 会返回一个冻结的集合,冻结后集合不能再添加或删除元素。

而元组比较特殊,只有当一个元组中所包含的元素都是可散列类型时,它才是可散列的。Luciano Ramalho 举了一个示例来说明这一点。


 

 

tt = (1, 2, (30, 40)) logging.info('hash(tt) -> %s', hash(tt)) tf = (1, 2, frozenset([30, 40])) logging.info('hash(tf) -> %s', hash(tf)) tl = (1, 2, [30, 40]) logging.info('hash(tl) -> %s', hash(tl)) 复制代码

运行结果:


 

 

INFO - result -> True INFO - hash(tt) -> 8027212646858338501 INFO - hash(tf) -> 985328935373711578 TypeError: unhashable type: 'list' 复制代码

示例中可以看到:元组内包含了一个非散列的列表,就会抛出 TypeError 异常。

一般情况下,用户自定义类型的对象都是可散列的,散列值就是这些对象 id() 函数的返回值,因此这些对象在比较的时候都是不相等的。

最后多说一句,小编是一名python开发工程师,这里有我自己整理了一套最新的python系统学习教程,包括从基础的python脚本到web开发、爬虫、数据分析、数据可视化、机器学习等。想要这些资料的可以关注小编,并在后台私信小编即可领取。

本文章素材来源于网络,如有侵权请联系删除。

Python编程-从入门到实践 Chapter18 第18章Django入门 映射URL 学习时的坑 书上的代码和指令是2016年的版本的,目前Django版本更新到了2.0,有很多地方成了坑,辛辛苦苦两天终于把书上所有的项目实现了,在此总结一下,为之后的学习者借鉴之用。 本人用的Win10系统,python3.6,Django2.0.1 1.安装Django 第一个坑就是它了,用pip的时候总显示pip版本过低,要先升级pip,可是pip总是升级失败,解决办法由很多,我选择的是删除... 阅读详情

相关推荐

零基础学习Python入门(学习大纲、编程基础、学习方法)

本文主要针对零基础想学习Python者。根据互联网资料收集整理而成。 1\python都学什么?   自学Python,看视频学的更快、更透彻一些,还要辅助书籍,并且要常练习,遇到不懂的问题就去弄懂. 2\Python编程基础 Python程序文件结构:程序→模块→语句→表达式 Python的关键要素(8个) 要素#1:基本数据类型 Integral类型 浮点类型 字符...

pythonadiou的博客 621

说说 Python 的映射数据类型

1 映射类关系 Python 的 collections.abc 模块内拥有 Mapping 和 MutableMapping 这两个抽象基类,它们为 dict 和其他类似的类型提供了接口定义。 mutable /ˈmjuːtəbl/ adj. Capable of or subject to change or alteration. 它们之间的类关系如下图所示: 箭头从子类指向父类,抽象类和抽象方法的名称以斜体显示。 首先是 Container、Iterable 与 Sized 三大接口,接着

读万卷书,行万里路 1274

Python 快速入门(上篇)❖ Python 数据类型

• 列表 • 元组 • 集合 • 字典 • 常用数据类型转换

xinhuixu博客 1241

python映射类型包括哪三种_Python映射类型

映射对象用于将哈希表值映射到任意对象。在python中,有一种称为字典的映射类型。这是可变的。字典的键是任意的。作为值,我们可以使用不同种类的元素,例如列表,整数或任何其他可变类型的对象。一些与字典相关的方法和操作是-方法len(d)该len()方法返回字典中的元素数。操作d [k]它将返回键为“ k”的d项。如果未映射键,则可能会引发KeyError。方法迭代(d)该方法将在字典的键上返回一个迭...

weixin_28949049的博客 9156

Python入门篇之组合数据类型

计算机不仅对单个变量表示的数据进行处理,更通常的情况是,计算机需要对一组 数据进行批量处理例如:(1) 给定一组单词 {,,,,},计算并输出每个单词的长度(2) 给定一个学院的学生信息,统计男女生比例(3) 一次实验产生了很多组数据,对这些大量数据进行分析以单词统计问题为例,在计算一个单词长度之前,程序需要使用一个 变量表示这个单词,对于一组单词,需要很多个变量。有两个解决方案:为每个单词分配一个变量,从变量命名上加以区分,例如,、分别存储第一个、第二个元素;

m0_73720982的博客 2892

零基础入门Python编程完整教程实战

Python作为一种面向对象、解释型的高级编程语言,自1991年由Guido van Rossum发布以来,凭借其简洁易读的语法和强大的标准库支持,迅速成为人工智能、数据分析、自动化运维等领域的首选语言。其“可执行伪代码”般的表达能力极大提升了开发效率。

weixin_35920379的博客 873

Python中的映射类型详解

泛映射类型 collections.abc模块中有Mapping和MutableMapping这两个抽象基类,它们的作用事为dict和其他类似的类型定义形式接口 非抽象映射类型一般不会直接继承这些抽象基类,它们会直接对dict或者是collections.UserDict进行扩展.这些抽象基类的主要作用事作为形式化的文档,它们定义了构建一个映射类型所需要的最基本的接口.然后它们还可以跟isinstance一起被用来判定某个数据是不是广义上的映射类型: from collections.abc import

python学习者的博客 1万+

自监督学习与上下文赌博机融合:视觉决策中的协同优化与实战指南

在机器学习领域,自监督学习(Self-Supervised Learning)通过设计前置任务从无标注数据中学习通用表征,已成为解决标注数据稀缺问题的关键技术。其核心原理是利用数据自身的结构生成监督信号,训练编码器提取鲁棒特征。上下文赌博机(Contextual Bandits)作为强化学习的简化分支,专注于在给定上下文信息下做出单步最优决策,平衡探索与利用,广泛应用于推荐系统、广告投放等场景。将两者结合,构建端到端的协同训练框架,能让视觉表征的优化直接服务于最终的决策目标,同时利用自监督任务作为正则化项提

weixin_33721344的博客 520

python映射类型包括哪三种_Python映射类型--笔记

《Python3程序开发指南》映射:键-值数据项的组合Python3支持两种无序的映射类型:内置的dict类型、标准库中的collections.defaultdict类型。Python3.1中引入了有序的映射类型:collections.OrderedDict,与内置dict有相同的方法和属性,但在存储数据时以插入顺序进行。键:可哈希运算的对象的对象引用;值:任意类型对象的对象引用使用字典字面值...

weixin_39970064的博客 908

最新 抖音 X-Gorgon 0408 和8408 设备注册协议

抖音app先是检测了你的手机cpu架构,是x86还是armeabi,通过cpu架构的不同来调用so内不同的xg方法,所以导致现在最新版抖音app的xg算法有0408和8408两种。两种都是最新版,因为我发现当我使用oppo手机安装最新版抖音抓包的xg是8408,而当我用小米或者华为安装最新版抖音,抓包以后发现xg是0408。抖音IOS XG84 设备注册激活协议代码片段。...

Q44804487的博客 1万+

告别卡顿!用U盘给你的MacBook Pro 2015+来一次macOS Monterey的‘大扫除’式安装

每次系统升级后,老款MacBook Pro用户最常抱怨的就是"怎么比之前更卡了?"——这不是错觉。系统迭代过程中积累的缓存文件、残留配置和隐形服务,就像房间角落堆积的灰尘,拖慢了整台机器的响应速度。而通过U盘进行的macOS Monterey全新安装,本质上是一次彻底的"数字大扫除":它不仅替换系统文件,还会重建所有索引、清理磁盘碎片,甚至能解决某些玄学般的卡顿问题。对于2015款及之后的MacBook Pro用户,这种安装方式能让老设备重获新生。

weixin_28731223的博客 311

python映射类型-Python 的映射数据类型有哪些?零基础小白入门学习必看

1 映射类关系Python 的 collections.abc 模块内拥有 Mapping 和 MutableMapping 这两个抽象基类,它们为 dict 和其他类似的类型提供了接口定义。mutable /ˈmjuːtəbl/ adj. Capable of or subject to change or alteration.它们之间的类关系如下图所示:箭头从子类指向父类,抽象类和抽象方法的...

weixin_37988176的博客 169

UE4 GamePlay框架深度解析:从蓝图到C++构建多人游戏核心

在游戏开发与实时交互应用领域,一套清晰、可扩展的底层框架是项目成功的关键。GamePlay框架作为虚幻引擎(UE4/UE5)的核心架构,定义了游戏世界中对象交互、状态管理与网络同步的基本原理。它通过职责分离的设计模式,将游戏规则(GameMode)、全局状态(GameState)、玩家状态(PlayerState)、可操控实体(Pawn/Character)及其控制器(Controller)等核心类有机组织起来,确保了逻辑的清晰性与多人游戏数据的一致性。其技术价值在于为开发者提供了一套经过验证的最佳实践,大

weixin_33924770的博客 619

python映射类型包括_Python 的映射数据类型有哪些?零基础小白入门学习必看

1 映射类关系Python 的 collections.abc 模块内拥有 Mapping 和 MutableMapping 这两个抽象基类,它们为 dict 和其他类似的类型提供了接口定义。mutable /ˈmjuːtəbl/ adj. Capable of or subject to change or alteration.它们之间的类关系如下图所示:箭头从子类指向父类,抽象类和抽象方法的...

weixin_39946029的博客 162

摄像头模组CCM简介

摄像头模组,全称Camera Compact Module,简写为CCM。CCM 包含几大件: 镜头(lens)、音圈马达(VCM)、传感器(sensor)、软板(FPC)、图像处理芯片(DSP)。工作原理:物体通过镜头(lens)聚集的光,通过CMOS或CCD集成电路,把光信号转换成电信号,再经过内部图像处理器(ISP)转换成数字图像信号输出到数字信号处理器(DSP)加工处理,转换成标准的GRB、YUV等格式图像信号。摄像头模组主要由以下几个部分组成:镜头(Lens):将光线汇聚到图像传感器上。

m0_73482095的博客 1万+

【WorkBuddy专栏27】WorkBuddy 和 CodeBuddy 到底什么关系——一篇文章终结所有混淆

WorkBuddy 和 CodeBuddy 到底什么关系——一篇文章终结所有混淆

AI人人懂 2679

python中最常用的映射类型的典型代表_Python 的映射数据类型有哪些?零基础小白入门学习必看...

原博文2020-10-09 17:20 −1 映射类关系Python 的 collections.abc 模块内拥有 Mapping 和 MutableMapping 这两个抽象基类,它们为 dict 和其他类似的类型提供了接口定义。mutable /ˈmjuːtəbl/ adj. Capable of...相关推荐2019-09-28 21:13 −Python python是一种跨平台的计算机...

weixin_39551103的博客 513

【Mode】多模干涉仪的设计 Multi-mode interferometer(MMI)

与 Splitter 器件一样,MMI 器件也是一种常见的分光器件,可以根据用户的需求将光束分成不同的比例。本文,我们将介绍如何仿真 MMI 器件。这里我们使用的是 1x2 MMI,其本质上是由四个部分组成的,中间的矩形多模式干涉区域以及左右两侧的三个 taper 模式转换区域。之前的教程中我们也提及了,为了获取稳定的模式场分布,通常,我们需要进行模式收敛性扫描。这里以官网给出的案例为例。如何提取 S 参数我们先暂时不做介绍,后续有时间了我们再做介绍。

u011699626的博客 1214

深度学习入门之python数据类型

随着人工智能的不断发展,深度学习这门技术也越来越重要,很多人都开启了学习深度学习,并且由于python语言的通俗易懂,较为容易上手,受到广大开发者的喜爱,现在有很多基于python语言下的深度学习框架,例如Pytorch、Tensorflow等等,越来越多的人开始基于这些深度学习框架下的开发,本文就简单介绍了机深度学习的基础内容之python数据类型。

weiwei152433的博客 479

单板电源设计(LDO、DC/DC)

高速电路设计的电源架构 在电路设计中,一块单板往往涉及多种电源,常见的如5V/3.3V/2.5V/1.8V/1.5V/1.2V/1V0.9V/0.75V等,如此多种类的电源不可能都直接通过背板从电源板获得。一般,单板仅有一种或者两种输入电源,如48V或12V,再由它们产生单板上器件所需要的电源。 单板如何由输入电源生成所需电源,常见有两种架构:集中式电源架构和分布式电源架构。 ...

sinat_15677011的博客 8330

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Python UV映射零基础入门:用5行代码开始学习

UV映射就像是给3D模型"贴墙纸"的技术。想象你要给一个立方体包装礼物,UV坐标就是告诉你怎么把平面的包装纸准确地贴到立方体的每个面上。

GoldEagle19的博客 852

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

【全篇】Python从零基础到入门

对Python的基础语法、判断语句、循环语句、函数、数据容器、文件操作、pyhton异常、模块、包进行了详细的介绍

v13111329954的博客 2959

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

零基础Python入门学习

目录 下载Python环境包https://www.python.org/ 一、监听输入、字符串转整数、分支、打印、循环 二、Python数据类型(注意Python对大小写敏感) 数据类型 类型转换内置函数 浮点数转整数、字符串转整数、字符串转浮点数、任意类型转字符串​ 获取变量类型 type() 判断变量是否属于某个类型isinstance() 三、算术运算 算术操作符 逻辑操作符 三元操作符 运算符优先级 四、循环体 while循环 for循环 五、数据结构 列表..

两水先木示的博客 3612

【机器学习-学习计划】零基础快速入门机器学习

本文为机器学习初学者提供了一个为期8周的系统学习计划,旨在帮助学习者掌握机器学习的基本概念、常用算法及实践技能。学习计划分为四个阶段:基础准备、机器学习基础理论、实战项目练习和进阶学习与拓展。建议学习者理论与实践结合,多交流讨论,注重问题解决,逐步积累经验,最终能够运用机器学习解决实际问题。

qq_36453147的博客 2242

人工智能python零基础入门,python人工智能编程入门

决策树学习:常见的算法包括:分类及回归树(ClassificationAnd Regression Tree, CART), ID3 (Iterative Dichotomiser 3), C4.5, Chi-squared Automatic Interaction Detection(CHAID), Decision Stump, 随机森林(Random Forest), 多元自适应回归样条(MARS)以及梯度推进机(Gradient Boosting Machine, GBM);

w12130826的博客 696

编程入门先学什么python-编程零基础应当如何开始学习 Python?

如果是零基础学习编程的话,从python开始是一个非常不错的选择,虽然很多人最开始学习编程的时候都是从C语言开始的,但是C语言有点底层,对零基础的人来说不太友好,而且现在很多学校都已经将Python作为入门的编程语言了,在目前特别火的机器学习、人工智能领域,Python可以说是标配的编程语言。所以我由浅入深的整理了一些Python的资源和路线,建议从前往后阅读,看完之后肯定对你有帮助!Python...

q6q6q的专栏 635
上一篇: Python中字符串有哪些常用操作?纯干货超详细
下一篇: 零基础小白Python入门必看:面向对象之典型魔术方法
python阿喵
博客等级 码龄6年 169粉丝 127原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值