Python字典操作指南,掌握编程中必备的数据结构!

4371a7f6f91ef7748ddb0a3f7ad8c0ca.jpeg

更多Python学习内容:ipengtao.com

字典(Dictionary)是Python中一种非常重要和常用的数据结构,它用于存储键-值对的数据。在Python中,字典是可变(Mutable)的、无序(Unordered)的、可哈希(Hashable)的数据结构,可以通过键来访问值。本文将深入探讨如何正确使用字典,并介绍字典的各种功能和用法。

字典的创建和基本操作

创建字典以及进行基本的操作。

创建字典

在Python中,可以使用大括号{}来创建一个字典,或者使用dict()构造函数。

以下是一些示例:

# 使用大括号创建字典
my_dict = {"name": "Alice", "age": 30, "city": "New York"}# 使用 dict() 构造函数创建字典
another_dict = dict(name="Bob", age=25, city="San Francisco")

访问字典的值

可以通过键来访问字典中的值,使用方括号[]来获取键对应的值,或者使用get()方法。

示例:

# 使用方括号获取值
name = my_dict["name"]
age = my_dict["age"]# 使用 get() 方法获取值
city = my_dict.get("city")

添加和修改字典的元素

可以通过指定键来添加或修改字典中的元素。如果键已存在,将会更新对应的值;如果键不存在,将会创建新的键值对。

示例:

# 添加新的键值对
my_dict["email"] = "alice@example.com"# 修改已有键的值
my_dict["age"] = 31

删除字典的元素

可以使用del语句删除字典中的元素,也可以使用pop()方法删除指定键的元素。

示例:

# 使用 del 语句删除元素
del my_dict["email"]# 使用 pop() 方法删除元素
my_dict.pop("age")

字典的遍历

字典中的元素是无序的,但可以通过不同的方式进行遍历。以下是一些常见的遍历方法。

遍历键

可以使用keys()方法获取字典中的所有键,并进行遍历。

示例:

for key in my_dict.keys():print(key)

遍历值

可以使用values()方法获取字典中的所有值,并进行遍历。

示例:

for value in my_dict.values():print(value)

遍历键值对

可以使用items()方法获取字典中的所有键值对,并进行遍历。

示例:

for key, value in my_dict.items():print(f"{key}: {value}")

字典的常见操作

除了基本的创建、访问和遍历操作,字典还支持许多其他常见操作,例如判断键是否存在、获取字典长度等。

判断键是否存在

可以使用in关键字来判断键是否存在于字典中。

示例:

if "name" in my_dict:print("Name is in the dictionary.")

获取字典长度

可以使用len()函数获取字典中键值对的数量。

示例:

length = len(my_dict)
print(f"The dictionary contains {length} key-value pairs.")

清空字典

可以使用clear()方法清空字典中的所有键值对。

示例:

my_dict.clear()

字典的嵌套

字典中的值可以是任何数据类型,包括另一个字典。这种嵌套字典的方式可以创建复杂的数据结构。

示例:

person = {"name": "Alice","age": 30,"address": {"street": "123 Main St","city": "New York"}
}

通过嵌套字典,可以更好地组织和表示复杂的数据关系。

字典的默认值

有时候需要访问字典中不存在的键时,不抛出 KeyError 异常,而是返回一个默认值。可以使用get()方法来实现这一点。

示例:

value = my_dict.get("nonexistent_key", "default_value")

如果字典中不存在键"nonexistent_key",则上述代码将返回"default_value"。

字典推导式

类似于列表推导式,Python还支持字典推导式,用于创建字典。

示例:

numbers = [1, 2, 3, 4, 5]
square_dict = {num: num ** 2 for num in numbers}

上述代码将创建一个包含数字和它们的平方的字典。

字典的排序

字典本身是无序的,但可以根据键或值对字典进行排序。以下是一些排序字典的示例。

按键排序

可以使用sorted()函数按照键对字典进行排序。

示例:

sorted_dict = {key: my_dict[key] for key in sorted(my_dict)}

按值排序

可以使用sorted()函数和自定义的排序函数来按值对字典进行排序。

示例:

sorted_dict = {key: value for key, value in sorted(my_dict.items(), key=lambda item: item[1])}

字典的复制

在Python中,字典的赋值是浅拷贝,如果需要创建一个新的独立字典,可以使用copy()方法或字典构造函数。

示例:

new_dict = my_dict.copy()  # 使用 copy() 方法
another_dict = dict(my_dict)  # 使用字典构造函数

总结

本文介绍了如何正确使用字典(dict)这一重要的数据结构,包括字典的创建、基本操作、遍历、常见操作、嵌套、默认值、推导式、排序、复制以及性能方面的知识点。字典是Python编程中不可或缺的工具之一,掌握它的用法将极大地提高代码的灵活性和可读性。

如果你觉得文章还不错,请大家 点赞、分享、留言 下,因为这将是我持续输出更多优质文章的最强动力!

更多Python学习内容:ipengtao.com

干货笔记整理

  100个爬虫常见问题.pdf ,太全了!

Python 自动化运维 100个常见问题.pdf

Python Web 开发常见的100个问题.pdf

124个Python案例,完整源代码!

PYTHON 3.10中文版官方文档

耗时三个月整理的《Python之路2.0.pdf》开放下载

最经典的编程教材《Think Python》开源中文版.PDF下载

6da7d4815a3e05f7aea8167fccadf7be.png

点击“阅读原文”,获取更多学习内容

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

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

相关文章

计算机视觉入门与调优

大家好啊,我是董董灿。 在 CSDN 上写文章写了有一段时间了,期间不少小伙伴私信我,咨询如何自学入门AI,或者咨询一些AI算法。 90%的问题我都回复了,但有时确实因为太忙,没顾得过来。 在这个过程中&#x…

Go调用jenkins api执行流水线构建与停止

用到的库: "github.com/bndr/gojenkins" 代码如下,一次到位: import ("context""fmt""time""github.com/bndr/gojenkins" )// 构建指定任务 func buildJob(ctx context.Context, jenkins…

Spark调优解析-sparkshuffle和程序开发优化2(七)

1Shuffle调优 1.1调优概述 大多数Spark作业的性能主要就是消耗在了shuffle环节,因为该环节包含了大量的磁盘IO、序列化、网络数据传输等操作。因此,如果要让作业的性能更上一层楼,就有必要对shuffle过程进行调优。但是也必须提醒大家的是&a…

勒索事件急剧增长,亚信安全发布《勒索家族和勒索事件监控报告》

近期(12.15-12.21)态势快速感知 近期全球共发生了247起攻击和勒索事件,勒索事件数量急剧增长。 近期需要重点关注的除了仍然流行的勒索家族lockbit3以外,还有本周top1勒索组织toufan。toufan是一个新兴勒索组织,本周共发起了108起勒索攻击&a…

Springboot和Spring有什么区别

SpringBoot和Spring的关系 不是:从马车到汽车那种交通出行的颠覆,从燃油车到纯电动车那种能源利用的变革,从人工驾驶到AI智能那种驾驶方式的升级。总之,不是产品的升级换代,不是谁要替换谁。而是:汽车从手…

基于数据库和NER构建知识图谱流程记录

文章目录 环境准备拓扑设计构建流程设计文件流设计交互解析算法实现数据库交互NER解析相似度计算 基于数据库的文件生成从数据库中读取字段将字段后处理后保存为文件 基于文件的知识图谱构建bug修改与算法优化图数据库连接问题批量构建知识图谱问题批量删除边问题空值处理问题去…

pygame学习(二)——绘制线条、圆、矩形等图案

导语 pygame是一个跨平台Python库(pygame news),专门用来开发游戏。pygame主要为开发、设计2D电子游戏而生,提供图像模块(image)、声音模块(mixer)、输入/输出(鼠标、键盘、显示屏)模…

商城小程序(5.商品列表)

目录 一、定义请求参数对象二、获取商品列表数据三、渲染商品列表结构四、把商品item封装为自定义组件五、使用过滤器处理价格六、上拉加载更多七、下拉刷新八、点击商品item项跳转到详情页面 这章主要完成商品列表页面的编写:位于subpkg分包下的goods_list页面 一…

【竞技宝】DOTA2:二号位地位发生变化 圣斧、血棘助法核重回巅峰!

北京时间2024年1月5日,目前国服已经更新7.35b版本一段时间了,在这段时间里,各位看官是否感受到了比赛节奏和英雄胜率方面的变化呢?从全分段的出场率以及胜率的变化来看,二号位在游戏内的地位已经发生了很大的变化。 在…

DrGraph原理示教 - OpenCV 4 功能 - 膨胀腐蚀

在二值图的结果基础上,可针对性处理。 这些处理有些是概念上的,有些是原理上的,也有形态上的,那就看用途与目的了。 本质上还是对二值图的黑白点进行处理,以用于图像增强、边缘检测、图像分割等多个领域。比如膨胀与腐…

Capsolver:解决Web爬虫中CAPTCHA挑战的最优解决方案

Web爬虫已经成为从各种在线来源提取和分析数据的不可或缺的技术。然而,在Web爬取过程中,经常会遇到的一个共同挑战是CAPTCHA。CAPTCHA(完全自动化的公共图灵测试,用于区分计算机和人类)是一种安全措施,旨在…

vue3中使用elementplus中的el-tree-select,自定义显示名称label

<el-tree-select v-model"addPval" node-key"id" :data"menulists" :render-after-expand"false" :props"menuProps" /> <el-divider />let menuProps {//自定义labellabel: (data: { name: any; }) > {ret…

web期末个人引导页透明版

效果图 代码 css代码 * {box-sizing: border-box; }body {color: #2b2c48;font-family: "Jost", sans-serif;background-image: url(../img/bg.jpg);background-repeat: no-repeat;background-size: cover;background-position: center;background-attachment: fix…

杨中科 ASP.NETCore开发效率利器 HOT RELOAD

HOT RELOAD 1、困惑:修改了服务器端的代码&#xff0c;必须重新运行程序。 2、方法1: [启动 (不调试) ] 3、方法2: .NET 6开始的Hot Reload(热重载) 正常修改代码后 不重启&#xff0c;是无法看到新的数据展示在页面 修改 运行结果&#xff1a; 方式一&#xff1a;设置开始…

java+vue+uniapp开发的前后端分离社交论坛问答发帖

源码介绍&#xff1a; 前后端分离社交论坛问答发帖BBS源码&#xff0c;社交论坛小程序|H5论坛| app论坛是javavueuniapp开发的前后端分离社交论坛问答发帖/BBS项目&#xff0c; 包括论坛图文帖&#xff0c;视频&#xff0c;圈子&#xff0c;IM私聊&#xff0c;微信支付&…

PyTorch数据并行(DP/DDP)浅析

一直以来都是用的单机单卡训练模型&#xff0c;虽然很多情况下已经足够了&#xff0c;但总有一些情况得上分布式训练&#xff1a; 模型大到一张卡放不下&#xff1b;单张卡batch size不敢设太大&#xff0c;训练速度慢&#xff1b;当你有好几张卡&#xff0c;不想浪费&#xf…

java SSM水质历史数据可视化设计myeclipse开发mysql数据库springMVC模式java编程计算机网页设计

一、源码特点 java SSM水质历史数据可视化设计是一套完善的web设计系统&#xff08;系统采用SSM框架进行设计开发&#xff0c;springspringMVCmybatis&#xff09;&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主…

k_d树, KNN算法学习笔记_1 距离和范数

k_d树, KNN算法学习笔记_1 距离和范数 二维树中最近邻搜索的示例。这里&#xff0c;树已经构建好了&#xff0c;每个节点对应一个矩形&#xff0c;每个矩形被分割成两个相等的子矩形&#xff0c;叶子对应于包含单个点的矩形 From Wikipedia 1&#xff0e; k k k近邻法是基本且简…

Elasticsearch:Serarch tutorial - 使用 Python 进行搜索 (一)

本实践教程将教你如何使用 Elasticsearch 构建完整的搜索解决方案。 在本教程中你将学习&#xff1a; 如何对数据集执行全文关键字搜索&#xff08;可选使用过滤器&#xff09;如何使用机器学习模型生成、存储和搜索密集向量嵌入如何使用 ELSER 模型生成和搜索稀疏向量如何使用…

Nginx 简介和入门 - part1

虽然作为1个后端程序员&#xff0c; 终究避不开这东西 安装Nginx 本人的测试服务器是debian &#xff0c; 安装过程跟ubuntu基本一样 sudo apt-get install nginx问题是 nginx 安装后 执行文件在/usr/sbin 而不是/usr/bin 所以正常下普通用户是无法使用的。 必须切换到root…