news 2026/5/3 15:06:18

【Python新手村】字典(Dict):别再大海捞针,我有专属“标签”!

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【Python新手村】字典(Dict):别再大海捞针,我有专属“标签”!

哈喽,各位 Python 练习生!

在前面的旅程里,我们见识过了列表元组集合

今天我们要聊的这位,是 Python 里的“情报局局长”——字典 (Dictionary)

想象一下,如果你在列表里存了 1000 个人的信息,想找“张三”的电话,你可能得从第 1 个人翻到第 1000 个人。这种查找方式,我们称之为**“随缘查找法”**。

但有了字典,就像你去了超市的自动储物柜:你不用记得东西在哪,你只需要拿着那张印着“取件码”的小纸条,对应的柜门就会“啪”地一声弹开。

1. 它是何方神圣?(创建字典)

字典的长相很特别,它也用花括号{}(没错,和集合抢地盘),但它里面是一对一对出现的。

这种成对的关系叫键值对 (Key-Value Pair)

# 创建一个字典 # 格式:{键: 值, 键: 值} hero_stats = { "名称": "亚瑟", "职业": "战士", "血量": 3600, "台词": "为了正义!" } print(hero_stats)

个人理解:你可以把Key(键)想象成标签,把Value(值)想象成盒子里的东西。找东西不看位置,只看标签!

2. 这里的规矩:Key 是唯一的,Value 是博爱的

字典有两个硬性规定,新手一定要记牢:

  1. Key 必须唯一:就像一个取件码只能开一个柜门。如果你存了两个一样的 Key,后来的那个会把前面的给“覆盖”掉。

  2. Key 必须不可变:Key 通常由字符串或数字担任(不能用列表)。

  3. Value 随便造:值可以是任何东西,数字、字符串、列表、甚至再嵌套一个字典。

# 覆盖演示 test_dict = {"name": "张三", "name": "李四"} print(test_dict) # 输出: {'name': '李四'} <-- 张三被无情地挤走了

3. 查数据:暴力拆解 vs 优雅索取

想看字典里的东西?有两种姿势。

姿势 A:直接抓取 (使用[])

这是最直接的方法,但也最容易“翻车”。

info = {"name": "Python", "age": 30} print(info["name"]) # 输出: Python # 如果 Key 不存在... # print(info["hobby"]) # 报错: KeyError: 'hobby' (程序直接原地炸裂)

姿势 B:优雅获取 (使用.get())

这是我强烈推荐的保命技巧

# 如果 key 不存在,它会默默返回 None,而不是报错 print(info.get("hobby")) # 输出: None # 你甚至可以设置一个“备胎”默认值 print(info.get("hobby", "这个真没有")) # 输出: 这个真没有

4. 增删改:管家的日常

字典的操作非常直观,就像操作变量一样。

增/改:直接指名道姓

如果 Key 不存在,就是新增;如果 Key 存在,就是修改。

user = {"id": 1} # 增 user["name"] = "阿强" # 改 user["id"] = 999 print(user) # {'id': 999, 'name': '阿强'}

删:踢出柜门

  • pop("key"): 删掉并把值还给你。

  • del dict["key"]: 直接消灭。

user.pop("name") print(user) # {'id': 999}

5. 遍历字典:偷看情报局的底牌

有时候你想看看字典里都有啥,有三种方式:

d = {"a": 1, "b": 2, "c": 3} # 1. 只看 Key (键) for k in d.keys(): print(k) # 2. 只看 Value (值) for v in d.values(): print(v) # 3. 都要看 (键值对) —— 最常用 for k, v in d.items(): print(f"标签是 {k}, 里面装着 {v}")

6. 个人心得:什么时候该用字典?

作为一个过来人,我有两点深刻的体会:

  1. 拒绝“魔术数字”:如果你发现你的代码里有很多student[0]student[1],过了一周你肯定忘了0是姓名还是学号。这时候请务必换成student["name"]代码的可读性会瞬间起飞

  2. 查找速度极快:字典和集合一样,底层也是哈希表。不管字典里有一万个数据还是十万个,查找某个 Key 的速度几乎都是“瞬间”。在处理大数据时,字典是当之无愧的效率之王。

关于顺序的碎碎念:在很久以前(Python 3.6 之前),字典是无序的。但现在的 Python(3.7+)默认会记住你插入数据的顺序。虽然有序了,但我们用字典的核心还是为了映射,而不是为了排序。

总结

Python 的字典 (Dict) 是一个极其聪明的管家:

  • 样子是{Key: Value}

  • 核心是映射关系,找东西快如闪电。

  • 绝招是.get(),让你的程序永不崩盘。

  • 它是处理复杂数据的终极利器。

掌握了字典,你才算真正踏入了 Python 高级应用的门槛!

喜欢这篇文章吗?点个赞,让你的 Python 技能像字典查询一样快!(。♥‿♥。)

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/16 14:32:58

FaceFusion与语音合成结合打造全息数字人

FaceFusion与语音合成结合打造全息数字人 在虚拟偶像直播带货、AI主持人播报新闻、元宇宙中用户化身实时互动的今天&#xff0c;我们正快速步入一个“数字人格”无处不在的时代。真正的挑战早已不再是“能不能做出一张像人的脸”&#xff0c;而是——如何让这张脸真正‘活’起来…

作者头像 李华
网站建设 2026/4/27 8:10:28

FaceFusion如何处理动态模糊视频中的人脸融合?

FaceFusion如何处理动态模糊视频中的人脸融合&#xff1f; 在短视频与直播内容爆炸式增长的今天&#xff0c;人脸替换技术早已不再是实验室里的概念玩具。从虚拟偶像跨年演出到影视剧中的“数字替身”&#xff0c;再到普通用户一键生成趣味换脸视频&#xff0c;这项技术正以前…

作者头像 李华
网站建设 2026/5/1 10:17:15

12、硬件安全:应对隐蔽通道与侧信道攻击

硬件安全:应对隐蔽通道与侧信道攻击 1. 限制隐蔽和侧信道攻击的现有方法 在限制隐蔽和侧信道攻击时,一种方法是枚举可被主体引用或修改的资源,并仔细检查每个资源,看其是否可用于在主体间隐蔽传输信息。共享资源矩阵的行代表所有共享资源以及主体可见的资源属性,每列对应…

作者头像 李华
网站建设 2026/4/30 3:55:49

建AI时代营销闭环,一套系统解决内容、流量与转化难题

温馨提示&#xff1a;文末有资源获取方式在信息过载的当下&#xff0c;企业营销面临内容生产难、流量获取贵、转化路径长的三重困境。一套先进的GEO源码系统&#xff0c;正通过技术与流程的深度融合&#xff0c;为企业打造从内容生产到AI流量收割的完整闭环。它不仅是一个工具&…

作者头像 李华
网站建设 2026/5/1 19:11:13

62、非正交多址接入(NOMA)系统的物理层安全

非正交多址接入(NOMA)系统的物理层安全 1. 引言 非正交多址接入(NOMA)被视为下一代无线通信系统的有力候选技术。与传统的正交多址接入(OMA)相比,NOMA 通过在相同的时频资源块上复用用户,能够增加服务用户数量并提高系统频谱效率(SE)。然而,从安全角度来看,用户共…

作者头像 李华
网站建设 2026/4/23 14:50:01

Open-AutoGLM更新如闪电,你的系统能接得住吗?10个真实适配案例警示

第一章&#xff1a;Open-AutoGLM 应用适配数量更新速度比拼 在当前大模型生态快速演进的背景下&#xff0c;Open-AutoGLM 作为开源自动化语言模型适配框架&#xff0c;其对各类下游应用的兼容性扩展速度成为衡量社区活跃度与工程效率的关键指标。不同分支版本在支持新应用时展现…

作者头像 李华