字典的创建和删除

news2024/9/19 9:25:34

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm=1001.2014.3001.5501

在Python中,字典与列表类似,也是可变序列,不过与列表不同,它是无序的可变序列,保存的内容是以“键-值对”的形式存放的。这类似于我们的新华字典,它可以把拼音和汉字关联起来,通过音节表可以快速找到想要的汉字。其中新华字典里的音节表相当于键(key),而对应的汉字,相当于值(value)。键是唯一的,而值可以有多个。字典在定义一个包含多个命名字段的对象时,很有用。

字典的主要特征如下:

l  通过键而不是通过索引来读取

字典有时也称为关联数组或者散列表(hash)。它是通过键将一系列的值联系起来的,这样就可以通过键从字典中获取指定项,但不能通过索引来获取。

l  字典是任意对象的无序集合

字典是无序的,各项是从左到右随机排序的,即保存在字典中的项没有特定的顺序。这样可以提高查找效率。

l  字典是可变的,并且可以任意嵌套

字典可以在原处增长或者缩短(无须生成一个副本)。并且它支持任意深度的嵌套(即它的值可以是列表或者其他的字典)。

l  字典中的键必须唯一

不允许同一个键出现两次,如果出现两次,则后一个值会被记住。

l  字典中的键必须不可变

字典中的键是不可变的,所以可以使用数字、字符串或者元组,但不能使用列表。

说明:Python中的字典相当于Java或者C++中的Map对象。

定义字典时,每个元素都包含两个部分“键”和“值”。以水果名称和价格的字典为例,键为水果名称,值为水果价格,如图22所示。

图22  字典示意图

创建字典时,在“键”和“值”之间使用冒号分隔,相邻两个元素使用逗号分隔,所有元素放在一对“{}”中。语法格式如下:

dictionary = {'key1':'value1', 'key2':'value2',  …, 'keyn':'valuen',}

参数说明:

l   dictionary:表示字典名称。

l   key1、key2…keyn:表示元素的键,必须是唯一的,并且不可变,例如,可以是字符串、数字或者元组。

l   value1、value2…valuen:表示元素的值,可以是任何数据类型,不是必须唯一的。

例如,创建一个保存通讯录信息的字典,可以使用下面的代码:

dictionary = {'qq':'84978981','明日科技':'84978982','无语':'0431-84978981'}

print(dictionary)

执行结果如下:

{'qq': '84978981', '明日科技': '84978982', '无语': '0431-84978981'}

同列表和元组一样,也可以创建空字典。在Python中,可以使用下面两种方法创建空字典:

dictionary = {}

或者

dictionary = dict()

Python中的dict()方法除了可以创建一个空字典外,还可以通过已有数据快速创建字典。主要表现为以下两种形式:

(1)通过映射函数创建字典

通过映射函数创建字典的语法如下:

dictionary = dict(zip(list1,list2))

参数说明:

l   dictionary:表示字典名称。

l   zip()函数:用于将多个列表或元组对应位置的元素组合为元组,并返回包含这些内容的zip对象。如果想获取元组,可以将zip对象使用tuple()函数转换为元组;如果想获取列表,则可以使用list()函数将其转换为列表。

说明:在Python 2.x中,zip()函数返回的内容为包含元组的列表。

l  list1:一个列表,用于指定要生成字典的键。

l  list2:一个列表,用于指定要生成字典的值。如果list1和list2的长度不同,则与最短的列表长度相同。

场景模拟:某大学的寝室里住着4位美女,将她们的名字保存在一个列表中,将她们每个人的星座对应保存在另一个列表中。

图标 (35)

  实例09  创建一个保存女神星座的字典

在IDLE中创建一个名称为sign_create.py的文件,然后在该文件中,定义两个包括4个元素的列表,再应用dict()函数和zip()函数将前两个列表转换为对应的字典,并且输出该字典,代码如下:

name = ['绮梦','冷伊一','香凝','黛兰']            # 作为键的列表

sign = ['水瓶座','射手座','双鱼座','双子座']          # 作为值的列表

dictionary = dict(zip(name,sign))                # 转换为字典

print(dictionary)                                # 输出转换后字典

运行实例后,将显示如图23所示的结果。

图23  创建一个保存女神星座的字典

(2)通过给定的关键字参数创建字典

通过给定的关键字参数创建字典的语法如下:

dictionary = dict(key1=value1,key2=value2,…,keyn=valuen)

参数说明:

l   dictionary:表示字典名称。

l   key1,key2,…,keyn:表示参数名,必须是唯一的,并且符合Python标识符的命名规则。该参数名会转换为字典的键。

l   value1,value2,…,valuen:表示参数值,可以是任何数据类型,不必须唯一。该参数值将被转换为字典的值。

例如,将实例09中的名字和星座以关键字参数的形式创建一个字典,可以使用下面的代码:

dictionary =dict(绮梦 = '水瓶座', 冷伊一 = '射手座', 香凝 = '双鱼座', 黛兰 = '双子座')

print(dictionary)

在Python中,还可以使用dict对象的fromkeys()方法创建值为空的字典,语法如下:

dictionary = dict.fromkeys(list1)

参数说明:

l  dictionary:表示字典名称。

l  list1:作为字典的键的列表。

例如,创建一个只包括名字的字典,可以使用下面的代码:

name_list = ['绮梦','冷伊一','香凝','黛兰']           # 作为键的列表

dictionary = dict.fromkeys(name_list)

print(dictionary)

执行结果如下:

{'绮梦': None, '冷伊一': None, '香凝': None, '黛兰': None}

另外,还可以通过已经存在的元组和列表创建字典。例如,创建一个保存名字的元组和保存星座的列表,通过它们创建一个字典,可以使用下面的代码:

name_tuple = ('绮梦','冷伊一', '香凝', '黛兰')          # 作为键的元组

sign = ['水瓶座','射手座','双鱼座','双子座']            # 作为值的列表

dict1 = {name_tuple:sign}                          # 创建字典

print(dict1)

执行结果如下:

{('绮梦', '冷伊一', '香凝', '黛兰'): ['水瓶座', '射手座', '双鱼座', '双子座']}

如果将作为键的元组修改为列表,再创建一个字典,代码如下:

name_list = ['绮梦','冷伊一', '香凝', '黛兰']         # 作为键的列表

sign = ['水瓶座','射手座','双鱼座','双子座']            # 作为值的列表

dict1 = {name_list:sign}                            # 创建字典

print(dict1)

执行结果如图24所示。

图24  将列表作为字典的键产生的异常

同列表和元组一样,不再需要的字典也可以使用del命令删除整个字典。例如,通过下面的代码即可将已经定义的字典删除。

del dictionary

另外,如果只是想删除字典的全部元素,可以使用字典对象的clear()方法实现。执行clear()方法后,原字典将变为空字典。例如,下面的代码将清除字典的全部元素。

dictionary.clear()

除了上面介绍的方法可以删除字典元素,还可以使用字典对象的pop()方法删除并返回指定“键”的元素,以及使用字典对象的popitem()方法删除并返回字典中的一个元素。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1703819.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

mysql 、oss 结合使用

以下是一个使用 Express、MySQL、OSS 和 axios 的 Node.js 示例。这个示例创建了一个 Express 服务器,该服务器有一个路由用于处理视频上传的请求。视频文件首先被上传到 OSS,然后视频的 OSS URL 被存储到 MySQL 数据库。 首先,我们需要安装必…

2024.5.27 作业 xyt

定义自己的命名空间my_sapce&#xff0c;在my_sapce中定义string类型的变量s1&#xff0c;再定义一个函数完成对字符串的逆置 #include <iostream>using namespace std; namespace my_space {string s1"hello world";void my_strreverse(string str); } using…

四川汇聚荣科技有限公司好不好?

在当今科技飞速发展的时代&#xff0c;企业要想在激烈的市场竞争中脱颖而出&#xff0c;不仅需要先进的技术支持&#xff0c;还需要优质的服务和良好的口碑。那么&#xff0c;四川汇聚荣科技有限公司是否具备这些条件呢?接下来&#xff0c;我们将从公司实力、服务质量、客户反…

声学特征在膝关节健康诊断中的应用分析

关键词&#xff1a;膝关节声发射、膝关节生物标志物、因果关系、机器学习 声学膝关节健康评估长期以来一直被看作是一种替代临床可用医学成像工具的替代方法&#xff0c;如声发射技术是通过检测膝关节在运动过程中产生的微小裂纹或损伤引起的声波信号&#xff0c;从而评估关节的…

人工智能超万卡集群的核心设计原则和架构

超万卡集群的核心设计原则和架构 超万卡集群建设方兴未艾,当前主要依托英伟达GPU及其设备。英伟达GPU在大模型训练中表现卓越,但国产AI芯片虽进步显著,性能与生态构建仍存差距。面对诸多挑战,构建技术领先、基于国产生态的超万卡集群,仍需不断突破与创新。 大模型升级至万…

leetcode 1225 报告系统状态的连续日期(postgresql)

需求 系统 每天 运行一个任务。每个任务都独立于先前的任务。任务的状态可以是失败或是成功。 编写一个 SQL 查询 2019-01-01 到 2019-12-31 期间任务连续同状态 period_state 的起止日期&#xff08;start_date 和 end_date&#xff09;。即如果任务失败了&#xff0c;就是失…

AppInventor2 代码调试方法,99%的人可能不知道这种方式!

AppInventor2 基本上所有调试App的前提是安装好AI伴侣&#xff0c;并与AI伴侣连接后进行&#xff0c;我们在设计界面的每次改动&#xff0c;都会实时的反映在AI伴侣中。 AI伴侣可以运行在手机上&#xff0c;也可以是安卓模拟器。 AI伴侣具体的安装及连接步骤请参考&#xff1…

【C++】set与map

目录 一、键值对 二、set 1. set的模板参数列表 2. set的构造 3. set的迭代器 4. set的容量 5. set的修改 6. set的查找 三、map 1. map的模板参数列表 2. map的构造 3. map的迭代器 4. map的容量 5. map的修改 6. map的查找 一、键值对 用来表示具有一一对应关…

微服务八股-分布式事务-注册中心-服务保护

一、分布式事务 1.CAP和BASE 三者不能同时存在。 CP&#xff1a;由于网络分片的存在&#xff0c;如果要保证强一致性就不能写&#xff0c;此时不满足可用性 AP&#xff1a;由于网络分片的存在&#xff0c;如果要保证可用性&#xff0c;能读也能写&#xff0c;就不能保证强一致…

蜂窝物联水雨情监测:实时监测水雨情,提前预警守护平安家园!

蜂窝物联水雨情监测系统是一个集成了物联网技术的综合系统&#xff0c;主要用于实时监测和管理水文、气象信息&#xff0c;特别是关于水体&#xff08;如河流、湖泊等&#xff09;的水位和降雨量等关键参数。 水位、雨量等数据监测 实时采集水位计、雨量等数据&#xff1b;通过…

Google Extension 【Google 最佳扩展插件】

pockettube: youtube manager 订阅号分组沉浸式翻译&#xff1a;全网口碑炸裂的双语对照网页翻译插件Google 翻译腾讯翻译篡改猴MetaMaskGlarity: Summarize & Translate Any Page

执行普罗米修斯插件mysqld_exporter出现闪退问题如何解决?

运行 mysqld_exporter.exe 文件闪退的问题可能是由于配置文件或环境变量设置不正确导致的。 检查配置文件 my.cnf&#xff1a; 打开 my.cnf 文件&#xff0c;确保其中的配置项正确无误&#xff0c;尤其是 MySQL 数据库的连接信息。配置示例&#xff1a;[client] useryour_mysql…

Android studio版本和Android gradle plugin版本对应表

1.Android studio 版本的升级&#xff0c;一个方面上看主要是升级对AGP最高版本的支持 2.那为什么AGP要出高版本呢&#xff0c;主要支持高版本的API&#xff0c;真是一环扣一环

3.5 四个子空间的维度

一、概述 这一节的主要定理是将秩与维度联系在一起。矩阵的秩就是主元的个数&#xff0c;子空间的维度是基向量的个数&#xff0c;我们计算出这两个数就可以得到秩与维度。 A A A 的秩揭露了四个基本子空间的维度。 四个子空间中&#xff0c;两个子空间来自 A A A&#xff0c…

01Python相关基础学习

Python基础 模块相关导入模块sys模块 模块相关 导入模块 1. import 模块名 2. import 模块名 as 别名 3. from 模块名 import 成员名 as 别名sys模块 1. sys.argv 介绍: 实现从程序的外部想程序传递参数返回的是一个列表,第一个元素是程序文件名,第二个元素是程序外部传入的…

抖音小店怎么对接达人合作?达人带货的细节分享,附邀约达人话术

大家好&#xff0c;我是电商花花 人有多大胆&#xff0c;地就有多大产&#xff0c;做抖店想要出单&#xff0c;爆单&#xff0c;那必须要对接大量的达人来帮我们带货&#xff0c;抖音小店就是直播电商&#xff0c;帮我们对接的达人越多&#xff0c;出单就越多。 所以做抖店如…

龙蜥开发者说:夏日编码奇遇,中国科学院大学学子的开源世界探索记 | 第 27 期

「龙蜥开发者说」第 27 期来了&#xff01;开发者与开源社区相辅相成&#xff0c;相互成就&#xff0c;这些个人在龙蜥社区的使用心得、实践总结和技术成长经历都是宝贵的&#xff0c;我们希望在这里让更多人看见技术的力量。本期故事&#xff0c;我们邀请了中国科学院大学学生…

3D 生成重建015-nerf2mesh从神经辐射场中提取mesh和纹理!

3D 生成重建015-nerf2mesh从神经辐射场中提取mesh和纹理&#xff01; 文章目录 0 论文工作1 论文方法2 效果 0 论文工作 NeRF2Mesh 提出了一种从多视角 RGB 图像重建纹理表面网格的新方法。它克服了传统 NeRF 模型的局限性&#xff0c;由于其隐式表示&#xff0c;传统 NeRF 模…

有限元法之有限元空间的构造

目录 一、区域Ω的剖分 二、三角形一次元 三、一次元的基函数与面积坐标 四、三角形二次元及其基函数 前两节我们介绍了有限元基本概念和变分理论的推导&#xff0c;本节我们继续探讨有限元空间的构造。 一、区域Ω的剖分 对矩形区域进行三角剖分&#xff0c;其中x方向剖…

CPU数据传送控制方式

引入 为了实现CPU与I/O设备信息交换的同步 无条件传送 示例1&#xff1a; 示例2&#xff1a; 程序查询方式 引入 工作过程 单个外设 多个外设 特点 中断传送方式 工作过程 特点 DMA 概述 DMAC功能 总线请求信号HOLD 总线请求响应信号HOLDA 工作过程 小结