当前位置: 首页 > news >正文

python基础教程五(字典概念和基本操作)

需要将一些列值组合成数据结构并通过编号来访问各个值时,列表很有用。本章介绍一种通过名称来访问各个值的数据结构。这种数据结构称为映射。字典是python中唯一的内置映射类型,其中的值不按顺序排列,而是存储在键下。键可能是数,字符串,元组(不可改变的)

字典的名称指出了其用途,图书适合从头到尾的顺序阅读如果你愿意可快速翻到任何一页,这有点像列表。字典(日常生活中的字典和python字典)旨在让你能够轻松找到特定的单词(键),以获悉其定义(值)。

创建和使用字典
字典以类似下面的表示:
phone={‘alice’:‘2132’,‘beth’:9102}
字典由其键和相应的值组成,这种键-值对 称为项,在上面的示例中,键为名字,值为电话号码,每个键和值之间用:分隔,项之间用逗号分隔,而整个字典放在括号内。空字典用俩个花括号来表示类似于{}.

我们介绍的每一种数据结构都有一个函数将其他的数据结构变为对应数据结构的形式,例如列表的 list函数,元组的tuple函数,字符串的str,那字典呢也有就是dict

1. 函数dict

>>> items=[('1','2'),('3','4')]
>>> d=dict(items)
>>> d
{'1': '2', '3': '4'}
>>>d['1']
'2'

还可以使用关键字实参来调用这个函数,如下所示:

>>> a=dict(name=234,age=125)
>>>> a
>{'name': 234, 'age': 125}

尽管这可能是函数dict最常见的用法,但也可以用映射实参来调用它,这将创建一个字典。像list,tuple,str一样,如果调用这个函数时没有提供任何实参,将返回一个空字典。

2. 基本的字典操作

字典的基本行为在很多方面都类似于序列

1. len(d):返回字典d包含的项(键值对)数。

2. d[k]:返回与键k相关联的值。

3. d[k]=v:将值V关联到键k

4. del d[k]:删除键为k的项

1. k in d: 检查字典d是否有包含k的项
虽然字典和列表有多个相同之处,但也有一些重要的不同之处。

键的类型:字典中的键可以是整数,但并非必须是整数。字典中的键可以是任何不可变的类型,如浮点数(实数),字符串或元组
自动添加:即便是字典中原本没有的键,也可以给它赋值,这将在字典中创建一个新项。
成员资格:表达式 k ind (其中d 是一个字典)*查找的是键而不是值。

具体和列表差别看下面例子

>>> x=[]
>>>> x[42]='foo'
>Traceback (most recent call last):File "<stdin>", line 1, in <module>
IndexError: list assignment index out of range
>>> x={}
>>> x[43]='foo'
>>> x
{43: 'foo'}

首先,我尝试将字符串’foo’给一个空列表中索引为42的元素。这显然不可能,因为没有这样的元素。要让这个操作可行,初始化x时,必须使用[none]*43之类的代码,创建一个有那么多元素的列表,接下来的尝试可行
我们将’foo’赋值给了一个空字典的键43。

第三章介绍过方法format,可在有些情况下,通过在字典储存一些列命名的值,可让格式设置更容易一些,例如,可在字典中包含各种信息,这样只需在格式字符串中提取所需的信息即可,为此必须使用format_map来指出你将通过一个映射来提供所需的信息。

>>> phonebook={'beth':'9102','alice':'2341','ceil':'3258'}
>>> "ceil's phone number is {ceil}".format_map(phonebook)
"ceil's phone number is 3258"

相关文章:

python基础教程五(字典概念和基本操作)

需要将一些列值组合成数据结构并通过编号来访问各个值时&#xff0c;列表很有用。本章介绍一种通过名称来访问各个值的数据结构。这种数据结构称为映射。字典是python中唯一的内置映射类型&#xff0c;其中的值不按顺序排列&#xff0c;而是存储在键下。键可能是数&#xff0c;…...

【Delphi 基础知识 11】重载函数的使用

在Delphi中使用重载函数时&#xff0c;你可以创建多个具有相同名称但参数列表不同的函数。这样&#xff0c;编译器可以根据函数调用时提供的参数类型或数量来确定要调用的具体函数。以下是一个简单的重载函数的例子&#xff1a; unit OverloadExample;interfaceusesSysUtils;t…...

经典目标检测YOLO系列(一)YOLOV1的复现(1)总体架构

经典目标检测YOLO系列(一)实现YOLOV1网络(1)总体架构 实现原版的YOLOv1并没有多大的意义&#xff0c;因此&#xff0c;根据《YOLO目标检测》(ISBN:9787115627094)一书&#xff0c;在不脱离YOLOv1的大部分核心理念的前提下&#xff0c;重构一款较新的YOLOv1检测器&#xff0c;来…...

《设计模式》之策略模式

策略模式定义 比如对象的某个行为&#xff0c;在不同场景有不同实现方式&#xff0c;可以将这些行为的具体实现定义为一组策略&#xff0c;每个实现类实现种策略&#xff0c;在不同场景使用不同的实现&#xff0c;并且可以自由切换策略。 策略模式结构 策略模式需要一个策略…...

Django文章标签推荐

当博客文章实现了标签后&#xff0c;可以用它们做很多有趣的事情。关于标签的更多内容&#xff0c;请看 Django集成第三方标签功能-CSDN博客 使用标签&#xff0c;我们可以很好地对博客文章进行分类。类似主题的帖子会有几个共同的标签。下一步将构建一个功能&#xff0c;以显…...

Git、TortoiseGit进阶

1.安装Git、TortoiseGit和汉化包 Git官网: Git TortoiseGit和汉化包: Download – TortoiseGit – Windows Shell Interface to Git 2.常用命令 创建仓库命令 git init初始化仓库git clone拷贝一份远程仓库,也就是下载一个项目。提交与修改 git add添加文件到暂存区git…...

山区老人爱的礼物丨守护银龄,情暖寒冬

为让山区老人们在寒冷的冬天感受到来自社会的温暖&#xff0c;新年伊始&#xff0c;北京传益千里携手志愿者再次走进酉阳土家族苗族自治县木叶乡分发新的一轮山区老人爱的礼物&#xff0c;让更多的物资走向有需要的人群。 中午阳光正好&#xff0c;志愿者们走进山林中的人家&am…...

【计算机算法设计与分析】n皇后问题(C++_回溯法)

文章目录 题目描述测试样例算法原理算法实现参考资料 题目描述 在nxn格的棋盘上放置彼此不受攻击的n格皇后。按照国际象棋的规则&#xff0c;皇后可以攻击与之处在同一行或同一列或同一斜线上的棋子。n后问题等价于在nxn格的棋盘上放置n个皇后&#xff0c;任何2个皇后不放在同…...

Calendar日历类型常见方法

Calendar日历类型常见方法&#xff1a; 概括&#xff1a;1.get( )方法2、set( ) 设置时间3、常用的add方法4、after()方法表示的时间是否在指定时间之后&#xff0c; before( ) 方法则之前&#xff0c; 返回判断结果4.1、compareTo比较器 概括&#xff1a; Calendar类是一个抽…...

Docker-Compose部署Redis(v7.2)主从模式

文章目录 一、前提准备1. redis配置文件2. 下载redis镜像3. 文件夹结构 二、docker-compose三、主从配置1.主节点配置文件2.从节点配置文件 四、运行五、测试 环境 docker desktop for windows 4.23.0redis 7.2 一、前提准备 1. redis配置文件 因为Redis 7.2 docker镜像里面…...

Spring国际化的应用及原理详解

1. 简介 Spring国际化&#xff08;Spring Internationalization&#xff0c;简称i18n&#xff09;是Spring框架提供的一种机制&#xff0c;用于支持多语言的应用程序。它使得开发者能够轻松地在应用程序中实现不同语言的支持&#xff0c;从而满足全球化的需求。通过Spring国际…...

Existing installation is up to date

这个报错是之前安装的docker没有删除干净 解决方法&#xff1a; 打开注册表编辑器 然后再搜索栏&#xff1a;HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Docker Desktop 回车 找到Docker Desktop文件夹后&#xff0c;右键删除 重新安装Docker…...

windows安装kafka以及kafka管理工具推荐

windows安装 1.下载地址 下载地址 下载最新版本的.tgz文件解压 2.修改配置 修改config目录下的zookeeper.properties中的dataDir属性 server.properties文件中的log.dir属性 3.启动zookeeper 进入到bin\windows\下的用cmd输入zookeeper-server-start.bat ..\..\config\zo…...

面向对象的三大特征之一多态

多态 概念 多态是同一个对象&#xff0c;在不同时刻表现出来不同的形态&#xff0c;称之为多态。 例如&#xff1a;水&#xff0c;我们把水理解成为一个对象&#xff0c;而水会有不同的形态&#xff0c;比如 液态水、冰块、水蒸气 多态的前提 有继承/实现关系&#xff08;继承…...

vue3中标签form插件

想写一个系统&#xff0c;对八字进行标注&#xff0c;比如格局&#xff0c;有些八字就有很多格局&#xff0c;于是就想着使用el-tag但是&#xff0c;form表单中如何处理呢&#xff1f; 这个时候&#xff0c;就需要自己写一个,modelValue是表单的默认属性 <template><…...

企业数字化转型:1个核心、2种力量、3个关键点、4大转型、5大平台

引言 企业数字化转型源于当今数字化时代的巨大变革。随着科技的飞速发展和全球市场的日益竞争&#xff0c;企业们正面临着前所未有的挑战和机遇。这些挑战包括消费者行为的变化、新技术的涌现以及市场竞争的加剧。在这种环境下&#xff0c;传统的商业模式和运营方式已经不再适…...

Agilent安捷伦E4990A阻抗分析仪20Hz

Agilent安捷伦E4990A阻抗分析仪性能卓越&#xff0c;适用于元器件、半导体和材料测量。它具有宽广的频率范围&#xff0c;从20Hz到120MHz&#xff0c;能够适应各种不同的阻抗测量需求。在宽阻抗范围内&#xff0c;该仪器能够提供出色的0.045%&#xff08;典型值&#xff09;基本…...

性能优化-OpenMP概述(一)-宏观全面理解OpenMP

本文旨在从宏观角度来介绍OpenMP的原理、编程模型、以及在各个领域的应用、使用、希望读者能够从本文整体上了解OpenMP。 &#x1f3ac;个人简介&#xff1a;一个全栈工程师的升级之路&#xff01; &#x1f4cb;个人专栏&#xff1a;高性能&#xff08;HPC&#xff09;开发基础…...

Prometheus实战篇:Prometheus监控nginx

准备环境 在此专栏的前几篇文章中已经准备了一台服务器作为我们进行环境的准备.大家也可以通过虚拟机创建俩台服务器,一台作为Prometheus的安装另外一台进行其他软件安装并且进行监控的服务器. 这里我就不赘述nginx的安装教程,相信大家都可以搜到,使用docker或者直接通过安装包…...

JVM加载class文件的原理机制

1、JVM 简介 JVM 是我们Javaer 的最基本功底了&#xff0c;刚开始学Java 的时候&#xff0c;一般都是从“Hello World ”开始的&#xff0c;然后会写个复杂点class &#xff0c;然后再找一些开源框架&#xff0c;比如Spring &#xff0c;Hibernate 等等&#xff0c;再然后就开发…...

日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする

日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする 1、前言(1)情况说明(2)工程师的信仰2、知识点(1) にする1,接续:名词+にする2,接续:疑问词+にする3,(A)は(B)にする。(2)復習:(1)复习句子(2)ために & ように(3)そう(4)にする3、…...

逻辑回归:给不确定性划界的分类大师

想象你是一名医生。面对患者的检查报告&#xff08;肿瘤大小、血液指标&#xff09;&#xff0c;你需要做出一个**决定性判断**&#xff1a;恶性还是良性&#xff1f;这种“非黑即白”的抉择&#xff0c;正是**逻辑回归&#xff08;Logistic Regression&#xff09;** 的战场&a…...

可靠性+灵活性:电力载波技术在楼宇自控中的核心价值

可靠性灵活性&#xff1a;电力载波技术在楼宇自控中的核心价值 在智能楼宇的自动化控制中&#xff0c;电力载波技术&#xff08;PLC&#xff09;凭借其独特的优势&#xff0c;正成为构建高效、稳定、灵活系统的核心解决方案。它利用现有电力线路传输数据&#xff0c;无需额外布…...

跨链模式:多链互操作架构与性能扩展方案

跨链模式&#xff1a;多链互操作架构与性能扩展方案 ——构建下一代区块链互联网的技术基石 一、跨链架构的核心范式演进 1. 分层协议栈&#xff1a;模块化解耦设计 现代跨链系统采用分层协议栈实现灵活扩展&#xff08;H2Cross架构&#xff09;&#xff1a; 适配层&#xf…...

【2025年】解决Burpsuite抓不到https包的问题

环境&#xff1a;windows11 burpsuite:2025.5 在抓取https网站时&#xff0c;burpsuite抓取不到https数据包&#xff0c;只显示&#xff1a; 解决该问题只需如下三个步骤&#xff1a; 1、浏览器中访问 http://burp 2、下载 CA certificate 证书 3、在设置--隐私与安全--…...

实现弹窗随键盘上移居中

实现弹窗随键盘上移的核心思路 在Android中&#xff0c;可以通过监听键盘的显示和隐藏事件&#xff0c;动态调整弹窗的位置。关键点在于获取键盘高度&#xff0c;并计算剩余屏幕空间以重新定位弹窗。 // 在Activity或Fragment中设置键盘监听 val rootView findViewById<V…...

华为云Flexus+DeepSeek征文|DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建

华为云FlexusDeepSeek征文&#xff5c;DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建 前言 如今大模型其性能出色&#xff0c;华为云 ModelArts Studio_MaaS大模型即服务平台华为云内置了大模型&#xff0c;能助力我们轻松驾驭 DeepSeek-V3/R1&#xff0c;本文中将分享如何…...

算法笔记2

1.字符串拼接最好用StringBuilder&#xff0c;不用String 2.创建List<>类型的数组并创建内存 List arr[] new ArrayList[26]; Arrays.setAll(arr, i -> new ArrayList<>()); 3.去掉首尾空格...

在QWebEngineView上实现鼠标、触摸等事件捕获的解决方案

这个问题我看其他博主也写了&#xff0c;要么要会员、要么写的乱七八糟。这里我整理一下&#xff0c;把问题说清楚并且给出代码&#xff0c;拿去用就行&#xff0c;照着葫芦画瓢。 问题 在继承QWebEngineView后&#xff0c;重写mousePressEvent或event函数无法捕获鼠标按下事…...

推荐 github 项目:GeminiImageApp(图片生成方向,可以做一定的素材)

推荐 github 项目:GeminiImageApp(图片生成方向&#xff0c;可以做一定的素材) 这个项目能干嘛? 使用 gemini 2.0 的 api 和 google 其他的 api 来做衍生处理 简化和优化了文生图和图生图的行为(我的最主要) 并且有一些目标检测和切割(我用不到) 视频和 imagefx 因为没 a…...