十四、【Python】基础教程-【Python全掌握】六大基础数据类型:字典(dict)类型的终极指南

news2025/2/24 18:24:28

2b4bd7d6dba74cbea83d09f3220137be.png


目录

一、字典(dict)

1. 创建字典

2. 访问元素

3. 添加元素

4. 修改元素

 5. 删除元素

6. 检查键是否存在

7. 获取字典的键、值、项

8. 遍历字典

9. 更新字典

10. 复制字典

11. 字典推导式

12. 获取默认值

13. 弹出元素

14. 清空字典

15. 字典视图对象

16. 字典合并


一、字典(dict)

     字典(dict)是 Python 中一种非常强大的数据结构,它以键值对的形式存储数据。键必须是不可变类型,如字符串、数字或元组,而值可以是任何数据类型。下面列举了一些常见的字典操作方法和示例:

1. 创建字典

  • 使用花括号 {} 或 dict() 构造函数。
d = {'name': 'Alice', 'age': 30}
empty_dict = {}
fromkeys_dict = dict.fromkeys(['key1', 'key2'], 'default')

2. 访问元素

  • 使用键来访问字典中的值。
print(d['name'])  # 输出: Alice

3. 添加元素

  • 直接通过键赋值添加新元素。
d['email'] = 'alice@example.com'

4. 修改元素

  • 使用键来修改已存在的值。
d['age'] = 31

 5. 删除元素

  • 使用 del 关键字删除键值对。
del d['age']

6. 检查键是否存在

  • 使用 in 关键字检查字典中是否存在某个键。
if 'name' in d:
    print("Key exists.")

7. 获取字典的键、值、项

  • 使用 keys()values()items() 方法分别获取字典的键、值、键值对。
keys = d.keys()
values = d.values()
items = d.items()

8. 遍历字典

  • 默认遍历字典时,会遍历其键。
for key in d:
    print(key, d[key])
  • 遍历键值对:
for key, value in d.items():
    print(key, value)

9. 更新字典

  • 使用 update() 方法从另一个字典中更新键值对。
new_data = {'age': 32, 'city': 'New York'}
d.update(new_data)

10. 复制字典

  • 使用 `copy()` 方法或字典推导式。
copy_dict = d.copy()
copy_dict2 = {k: v for k, v in d.items()}

11. 字典推导式

  • 使用字典推导式创建或修改字典。
squared_dict = {x: x**2 for x in [1, 2, 3]}

12. 获取默认值

  • 使用 `get()` 方法安全地获取值,如果键不存在则返回默认值。
print(d.get('email', 'No email provided'))

13. 弹出元素

  • 使用 `pop()` 方法移除并返回一个键对应的值。
email = d.pop('email')

14. 清空字典

  • 使用 `clear()` 方法清空字典。
d.clear()

15. 字典视图对象

  • `keys()`, `values()`, `items()` 返回的是视图对象,这些对象会在字典变化时反映最新的状态。
view_keys = d.keys()

16. 字典合并

  •  使用 `|` 运算符或 `**` 解包语法在 Python 3.9+ 版本中合并字典。
merged_dict = d | new_data
merged_dict2 = {**d, **new_data}

      字典提供了非常灵活的方式来组织和操作数据,特别是在需要快速查找和修改数据的场景中。注意,从 Python 3.7 开始,字典保持了插入顺序,这使得字典在某些场景下更加有用。

需要Demo源码的同学,可以前往以下地址下载学习。

链接:https://pan.baidu.com/s/1ByWLkiXO9V5N2vjjvjpDkw?pwd=ucwg 
提取码:ucwg

 

2b4bd7d6dba74cbea83d09f3220137be.png

 

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

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

相关文章

第15周 Zookeeper分布式锁与变种多级缓存

Zookeeper **************************************************************

Verilog语言和C语言的本质区别是什么?

在开始前刚好我有一些资料,是我根据网友给的问题精心整理了一份「C语言的资料从专业入门到高级教程」, 点个关注在评论区回复“888”之后私信回复“888”,全部无偿共享给大家!!! 用老石的一句话其实很好说…

前端八股文 promise async await 的理解

promise是什么 Promise 是异步编程的一种解决方案,比传统的解决方案——回调函数和事件——更合理和更强大。 目的 解析 吴优编程 (解决异步编程中的嵌套问题的,将嵌套的格式 用peomise 写成同步) promise.then() 是成功后继…

【人工智能】人工智能概论(一):人工智能基本概概念、学派、发展历程与新一代人工智能

文章目录 1. 人工智能的基本概念与定义2. 人工智能的主要学派及主旨思想2.1. 符号主义学派:AI源自数学逻辑2.2. 连接主义学派:AI源自仿生学2.3. 行为主义学派:AI源自控制论 3. 人工智能的起源及发展历程4. 驱动新一代人工智能快速发展的因素 …

橙单后端项目下载编译遇到的问题与解决

今天下载orange-admin项目&#xff0c;不过下载下来运行出现一些问题。 1、涉及到XMLStreamException的几个类都出现下面的错误 The package javax.xml.stream is accessible from more than one module: <unnamed>, java.xml ctrl-shift-t 可以找到这个引入是哪些包里…

C++泛型编程,函数模板和类模板

C模板 模板概念&#xff1a;泛型编程&#xff0c;将类型参数化&#xff0c;在编译阶段不指定参数类型&#xff0c;运行阶段动态获取参数的技术&#xff0c;C中分为函数模板和类模板 语法&#xff1a; template<typename T> template -- 声明创建模板 typename -- 表…

Windows系统安装FinalShell

一、下载 通过百度网盘分享的文件&#xff1a;finalshell_install.exe 链接&#xff1a;https://pan.baidu.com/s/1_vcb_t-Cp4TZSN4nWUmLww 提取码&#xff1a;d6v8 二、安装 三、远程连接Linux系统 (1)打开VMware虚拟机 右键空白区域&#xff0c;点击open Terminal 输入命令…

数字信封+数字签名工具类测试样例(Java实现)

加解密过程 加密&#xff1a; 生成加密方SM2密钥对用于签名使用生成的SM2私钥生成数字签名生成SM4对称密钥对明文进行对称加密使用与解密方提前约定好的SM2公钥对第三步中的SM4对称密钥进行非对称加密把【加密方SM2公钥】、【数字签名】、【SM4对称加密后的密文】和【SM2非对…

Linux基础复习(四)

前言 上一篇文章配置了yum仓库和Tab自动补全&#xff0c;这一篇就开始详细介绍各命令 一、基础命令 pwd pwd命令全称Print Working Directory 打印工作目录&#xff0c;就是查看当前所在位置的目录路径 cd cd全称 Change Directory 切换目录&#xff0c;就是切换工作目录…

docker compose 安装rocketmq 4.x

官网参照 前置环境搭建 目录创建 创建两个目录 logs和store,用于存放日志和数据信息&#xff0c;位置随意&#xff0c;这里我放在/home/rockermq目录下 broker.conf 创建一个空文件broker.conf 在空文件中添加 # broker 对外提供服务的ip&#xff0c;如果是公网&#xff…

前端播放rtsp视频流(最后使用WebRtc)

前端播放rtsp视频流&#xff08;最后使用WebRtc&#xff09; 前言&#xff1a; ​ 项目需要将实验室里的摄像头画面引入到前端页面中&#xff0c;故对目前常见的几种方法进行了尝试&#xff0c;虽然过程坎坷但结局是好的。 一些尝试&#xff1a; RTSPtoWebRtc工具 由于RTSPt…

npm publish出错,‘proxy‘ config is set properly. See: ‘npm help config‘

问题&#xff1a;使用 npm publish发布项目依赖失败&#xff0c;报错 proxy config is set properly. See: npm help config 1、先查找一下自己的代理 npm config get proxy npm config get https-proxy npm config get registry2、然后将代理和缓存置空 方式一&#xff1a; …

相对位置偏置代码解析

1. 初始化相对位置偏置嵌入 self.rel_pos_bias nn.Embedding((2 * window_size - 1) ** 2, self.heads) 假设window_size7、slef.heads4,则 2 * window_size - 1 13&#xff1b;嵌入层的大小为13*13169&#xff0c;创建一个大小为169*4的嵌入矩阵。 2. 创建位置索引 pos …

OpenGL入门第六步:材质

目录 结果显示 材质介绍 函数解析 具体代码 结果显示 材质介绍 当描述一个表面时&#xff0c;我们可以分别为三个光照分量定义一个材质颜色(Material Color)&#xff1a;环境光照(Ambient Lighting)、漫反射光照(Diffuse Lighting)和镜面光照(Specular Lighting)。通过为每…

springboot整合 knife4j 接口文档

第一步&#xff1a;引入依赖 <dependency><groupId>com.github.xiaoymin</groupId><artifactId>knife4j-openapi2-spring-boot-starter</artifactId><version>4.4.0</version></dependency> 第二步&#xff1a;写入配置 方…

国内NAT服务器docker方式搭建rustdesk服务

前言 如果遇到10054,就不要设置id服务器!!! 由于遇到大带宽,但是又贵,所以就NAT的啦,但是只有ipv4共享和一个ipv6,带宽50MB(活动免费会升130MB~) https://bigchick.xyz/aff.php?aff322 月付-5 循环 &#xff1a;CM-CQ-Monthly-5 年付-60循环&#xff1a;CM-CQ-Annually-60官方…

2024后端开发面试题总结

一、前言 上一篇离职贴发布之后仿佛登上了热门&#xff0c;就连曾经阿里的师兄都看到了我的分享&#xff0c;这波流量真是受宠若惊&#xff01; 回到正题&#xff0c;文章火之后&#xff0c;一些同学急切想要让我分享一下面试内容&#xff0c;回忆了几个晚上顺便总结一下&#…

SQL数据库:通过在视频监控平台服务器上直接使用SQL存储过程,在海量记录中查询特定时间段内-某个摄像头的所有视频片段

目录 一、背景 1、存储过程 2、视频监控系统 二、需求和数据表 1、具体要求 2、数据表 3、部分数据 三、实现 1、目标 2、创建存储过程 &#xff08;1&#xff09;存储过程代码 &#xff08;2&#xff09;创建成功 3、存储过程的解释 4、SQL命令调用方式 5、调用…

【FunClip】阿里开源AI视频剪辑神器:全面体验与教程

目录 引言1. FunClip概览1.1 什么是FunClip1.2 FunClip的市场定位1.3 FunClip的创新意义 2. FunClip的功能特性3. FunClip的实际应用案例4. FunClip的使用教程4.1 在线体验FunClip4.2 本地部署Gradio版本4.3 命令行运行 结语参考引用 引言 随着数字媒体的蓬勃发展&#xff0c;…

OpenGL笔记十五之GLM叠加实验

OpenGL笔记十五之GLM叠加实验 —— 2024-07-27 晚上 bilibili赵新政老师的教程看后笔记 code review! 文章目录 OpenGL笔记十五之GLM叠加实验1.每一帧都旋转的三角形2.每一帧在旋转前&#xff0c;都重置为一次单位矩阵&#xff0c;这要只会旋转1度3.每一帧旋转前&#xff0c…