第九章(选学):字典——按名字找东西
学习目标理解字典的概念知道键-值对的配对关系学会用字典思维快速查找信息。9.1 生活中的字典新华字典和电话本小红有一本新华字典和一本电话本。她发现它们有一个共同的特点 小故事字典的魔法场景1查新华字典小红想知道蝴蝶的蝴怎么写 普通方法从第一页开始翻 第1页 → 不是 第2页 → 不是 第3页 → 不是 ... 第89页 → 找到了好累啊 字典方法用拼音查 1. 蝴的拼音是 hú 2. 在拼音索引里找 H 3. 在 H 里找 hú 4. 直接翻到第89页找到了 ✨ 通过拼音直接找到汉字场景2查电话本小红想给小明打电话 普通方法从第一页开始翻 第1页 → 王大明 138... 不是 第2页 → 李小华 139... 不是 第3页 → 张小红 136... 不是 ... 第45页 → 找到了太慢了 电话本方法用姓名查 1. 找到 X 开头的部分 2. 找到 小明 3. 看到电话136-8888-8888找到了 ✨ 通过姓名直接找到电话号码发现了什么新华字典拼音 → 汉字 hú → 蝴 电话本 姓名 → 电话号码 小明 → 136-8888-8888 这就是字典的思想 通过名字键找到内容值这就是字典数据结构 小贴士 字典Dictionary 存储键-值对的容器 通过键Key快速找到值Value 就像通过姓名找电话号码9.2 字典的魔法通过名字找内容字典和数组的区别数组通过位置找储物柜 ┌────┬────┬────┬────┬────┐ │ 0 │ 1 │ 2 │ 3 │ 4 │ ← 编号位置 ├────┼────┼────┼────┼────┤ │ │ │ ⚽ │ │ │ ← 物品 └────┴────┴────┴────┴────┘ 想要取⚽ → 去 2 号柜子必须记住位置问题❓ 2号柜子里是什么要打开才知道❓ ⚽在哪个柜子要一个个找字典通过名字找有标签的储物柜 ┌─────────┬─────────┬─────────┬─────────┬─────────┐ │ 书包 │ 课本 │ 足球 │ 画笔 │ 乐器 │ ← 标签键 ├─────────┼─────────┼─────────┼─────────┼─────────┤ │ │ │ ⚽ │ │ │ ← 物品值 └─────────┴─────────┴─────────┴─────────┴─────────┘ 想要取⚽ → 找足球标签不用记位置优势✅ 通过足球直接找到 ⚽✅ 不需要记住位置✅ 看标签就知道里面是什么生活中的字典无处不在 手机通讯录 姓名 → 电话号码 爸爸 → 138-0000-0000 妈妈 → 139-0000-0000 英汉词典 英文单词 → 中文意思 apple → 苹果 book → 书 成绩单 科目 → 分数 语文 → 95 数学 → 989.3 字典的组成键名字和值内容键-值对Key-Value Pair字典里的每一条记录都是一个键-值对键Key 值Value ↓ ↓ 姓名 → 电话号码 单词 → 意思 账号 → 密码例子班级通讯录字典内容 ┌───────────────────────────┐ │ 键姓名 → 值电话 │ ├───────────────────────────┤ │ 小明 → 136-1111-1111│ │ 小红 → 137-2222-2222│ │ 小刚 → 138-3333-3333│ └───────────────────────────┘ 查询字典[小红] 137-2222-2222 通过键小红找到值137-2222-2222键的要求✅ 键必须是唯一的不能重复 正确{小明: 136..., 小红: 137...} 错误{小明: 136..., 小明: 137...} ← 有两个小明 ✅ 一个键只能对应一个值 {小明: 136-1111-1111} ← 一对一9.4 字典的超能力快速查找不用一个个翻对比数组 vs 字典任务找出小明的电话号码用数组存储50个同学的电话数组 [张三:138-1111-1111, 李四:139-2222-2222, 王五:136-3333-3333, ... 小明:137-8888-8888, ← 第45个 ... 赵六:135-9999-9999] 查找过程 检查第1个 → 不是小明 检查第2个 → 不是小明 检查第3个 → 不是小明 ... 检查第45个 → 找到了查了45次 ⏱️ 时间很慢平均要查一半用字典存储字典 { 张三: 138-1111-1111, 李四: 139-2222-2222, 王五: 136-3333-3333, ... 小明: 137-8888-8888, ... 赵六: 135-9999-9999 } 查找过程 字典[小明] → 直接找到1次 ⏱️ 时间很快直接找到字典的魔法原理想象一个超级聪明的图书管理员 你说我要《西游记》 管理员脑子里有一张神奇的地图 《西游记》 → 第3排第5列第2层 直接走过去拿给你不用一本本找 字典就是这样的 通过键直接知道值在哪里速度对比 查找50个同学中的一个 数组/列表平均要检查 25 次 字典 只要 1 次 查找1000个单词中的一个 数组/列表平均要检查 500 次 字典 只要 1 次 查找100万条数据中的一个 数组/列表平均要检查 50万 次 字典 只要 1 次 ✨ 字典越大优势越明显 扩展存储更多信息升级版通讯录 不仅存电话还存更多信息 { 小明: { 电话: 136-1111-1111, 生日: 5月10日, 地址: 阳光小区 }, 小红: { 电话: 137-2222-2222, 生日: 8月15日, 地址: 花园小区 } } 查询小明的生日 通讯录[小明][生日] 5月10日9.5 有趣的应用英语单词本单词→意思 单词本字典英语单词本 ┌──────────────────────────┐ │ 英文键 → 中文值 │ ├──────────────────────────┤ │ apple → 苹果 │ │ book → 书 │ │ cat → 猫 │ │ dog → 狗 │ └──────────────────────────┘ 使用方法查单词cat → 猫 添加新单词sun → 太阳 检查有没有学过moon → ❌ 没有9.6 【动手练习】制作自己的小字典双向字典 英文 → 中文{apple: 苹果} 中文 → 英文{苹果: apple} 这样就可以 - 看到英文查中文意思 - 看到中文查英文单词 复习小游戏游戏规则 1. 电脑随机从字典里挑一个单词 2. 显示英文让你猜中文 3. 你输入答案 4. 电脑从字典里查询正确答案 5. 对比你的答案和正确答案 例子 电脑请说出 cat 的意思 你 猫 电脑✅ 正确从字典[cat]得到猫9.7 本章小结 字典是什么┌───────────────────────────────┐ │ 字典 存储键-值对的容器 │ │ 特点 │ ✅ 通过键快速找到值 │ ✅ 键是唯一的不能重复 │ ✅ 查找速度超快 │ ✅ 可以随时添加、修改、删除 └───────────────────────────────┘ 字典 vs 其他数据结构数组 位置 → 内容 0 → 苹果 1 → 香蕉 2 → 橙子 → 用数字位置找内容 集合 {苹果, 香蕉, 橙子} → 只记录有没有不记录额外信息 字典 名字 → 内容 水果1 → 苹果 水果2 → 香蕉 水果3 → 橙子 → 用有意义的名字找内容 → 可以存储额外信息如价格 字典最擅长什么快速查找通过键直接找到值例子通讯录、词典、成绩单配对信息每个键对应一个值例子姓名→电话、单词→意思、学号→成绩分类存储用键作为分类标签例子{语文: 95, 数学: 98, 英语: 92} 什么时候用字典用字典✅需要通过名字找东西需要存储配对信息键-值需要快速查找需要给数据起有意义的名字不用字典❌只需要存一堆东西不需要配对用数组或集合需要保持严格顺序用数组只需要知道有没有用集合 字典的基本操作字典 {}空字典 1. 添加字典[键] 值 → {键: 值} 2. 查询字典[键] → 返回值 3. 修改字典[键] 新值 → {键: 新值} 4. 删除删除字典[键] → {}空了 5. 检查字典里有键吗 → ✅ 有 或 ❌ 没有 6. 大小字典有多少对 → 返回数量 字典的键和值键Key ✅ 必须唯一不能重复 ✅ 通常是字符串姓名、年龄 ✅ 也可以是数字学号、ID ❌ 不能修改一旦创建 值Value ✅ 可以是任何东西数字、文字、列表... ✅ 可以重复 ✅ 可以修改9.8 【想一想】字典和数组有什么不同 思考题存储成绩老师要存储学生的各科成绩。用数组小明的成绩[95, 98, 92] 问题 - 第1个数字是什么科目不知道 - 英语考了多少分是第2个还是第3个用字典小明的成绩{语文: 95, 数学: 98, 英语: 92} 优势 - 一眼就知道每个分数对应什么科目 - 想查英语成绩[英语] 92总结数组适合有顺序的数据、用位置表示意义 字典适合需要快速查找、需要配对信息、用名字表示意义 本章彩蛋字典的高级用途 游戏角色属性角色信息字典 { 名字: 勇者小明, 等级: 10, 生命值: 100, 魔法值: 50, 攻击力: 25, 防御力: 15, 装备: { 武器: 铁剑, 盔甲: 布衣, 饰品: 力量戒指 }, 背包: [药水, 面包, 金币x100] } 查询攻击力角色[攻击力] 25 查询武器角色[装备][武器] 铁剑 统计功能数每个字母出现几次句子apple 字母计数字典 { a: 1, p: 2, ← p出现了2次 l: 1, e: 1 } 这样就知道每个字母出现了几次 下一章预告我们已经学了集合记录有哪些不同的东西字典通过名字快速找东西但是如果我们想表示城市之间的连接关系北京→上海上海→广州…同学之间的朋友关系小明认识小红小红认识小刚…地铁站之间的线路关系1号线、2号线交叉换乘…该怎么办呢这就是下一章要学的——图Graph图能表示复杂的网络关系就像一张巨大的蜘蛛网把所有东西连接起来敬请期待 恭喜你完成了选学第二章继续加油✨

相关新闻

除妖建《层园》:李渔智破 “鬼宅” 迷局,把凶宅住成了杭州城的 “世外桃源”

除妖建《层园》:李渔智破 “鬼宅” 迷局,把凶宅住成了杭州城的 “世外桃源”

明末清初的杭州,云居山的雾气总比别处更重。山脚下那座宅院,墙皮剥落,朱漆大门上的铜环锈迹斑斑,像一双双空洞的眼睛,盯着每一个路过的人。青石板路上的苔藓,顺着墙根往上爬,把整座宅子裹在一片…

2026/7/6 9:32:07 阅读更多 →
导师推荐!风靡全网的降AI率工具 —— 千笔·专业降AIGC智能体

导师推荐!风靡全网的降AI率工具 —— 千笔·专业降AIGC智能体

在AI技术快速发展的今天,越来越多的学生和研究人员开始借助AI工具提升论文写作效率。然而,随着学术查重系统对AI生成内容的识别能力不断增强,如何有效降低AI率、避免重复率超标,已成为众多学生面临的核心难题。许多人在使用各种降…

2026/7/6 9:32:18 阅读更多 →
SS-31 ;D-Arg-Dmt-Lys-Phe-NH2

SS-31 ;D-Arg-Dmt-Lys-Phe-NH2

基本性质中文名称:SS‑31;线粒体靶向肽;依米普肽英文名称:SS‑31;Elamipretide;MTP-131三字母序列:D-Arg-Dmt-Lys-Phe-NH₂单字母序列:R(D)‑Dmt‑K‑F‑NH₂CAS 号:4972…

2026/7/4 17:13:30 阅读更多 →

最新新闻

AppScan 扫描结果分析:5步法高效验证与处理100+个潜在漏洞

AppScan 扫描结果分析:5步法高效验证与处理100+个潜在漏洞

AppScan扫描结果深度解析:从漏洞验证到修复落地的全流程指南当安全扫描工具弹出"发现100潜在漏洞"的警示时,开发团队的第一反应往往是头皮发麻。我曾见证过某金融项目团队面对AppScan生成的287页报告时的崩溃场景——安全工程师通宵标记出的&q…

2026/7/6 9:32:36 阅读更多 →
从OWASP指南到安全代码模板:Semgrep与Cookiecutter实战

从OWASP指南到安全代码模板:Semgrep与Cookiecutter实战

1. 项目概述:为什么我们需要“安全代码模板”?在应用安全领域,我们常常面临一个尴尬的境地:安全规范文档浩如烟海,但开发者在编码时,却很难快速、准确地找到并应用那些最关键的安全防护措施。OWASP Cheat S…

2026/7/6 9:32:36 阅读更多 →
半导体材料参数 3 大误区:禁带宽度仅决定耐温?迁移率只影响速度?

半导体材料参数 3 大误区:禁带宽度仅决定耐温?迁移率只影响速度?

半导体材料参数 3 大误区:禁带宽度仅决定耐温?迁移率只影响速度?在半导体器件设计与选型过程中,工程师们常常陷入对关键参数的片面理解。禁带宽度、载流子迁移率等基础参数的真实工程意义,远比教科书上的定义复杂得多。…

2026/7/6 9:30:31 阅读更多 →
MATLAB环境下可直接运行的人脸识别CNN工程:含完整训练测试代码、预训练模型与实操录像

MATLAB环境下可直接运行的人脸识别CNN工程:含完整训练测试代码、预训练模型与实操录像

本文还有配套的精品资源,点击获取 简介:一套开箱即用的MATLAB人脸识别CNN实现方案,适配MATLAB 2022a版本,无需额外配置即可运行。包含从数据预处理(图像缩放、归一化)、网络构建(卷积层、池化…

2026/7/6 9:28:30 阅读更多 →
JMeter CSV结果文件转HTML性能报告:命令行生成与深度解读指南

JMeter CSV结果文件转HTML性能报告:命令行生成与深度解读指南

1. 项目概述:从CSV结果到可视化洞察做性能测试,跑完脚本、拿到一堆数据只是第一步。真正考验人的,是能从这些冰冷的数据里看出门道,讲出故事。JMeter的“查看结果树”保存的CSV文件,就像一本记录了所有测试细节的原始账…

2026/7/6 9:28:30 阅读更多 →
EyouCMS 1.5.5 漏洞防御实战:3步加固模板管理功能防命令执行

EyouCMS 1.5.5 漏洞防御实战:3步加固模板管理功能防命令执行

EyouCMS 1.5.5 漏洞防御实战:3步加固模板管理功能防命令执行在网站安全领域,内容管理系统(CMS)的安全防护一直是运维人员和开发者的重点关注对象。EyouCMS作为国内广泛使用的企业建站系统,其1.5.5版本中发现的模板管理…

2026/7/6 9:26:29 阅读更多 →

日新闻

H2 与 MySQL 单元测试兼容性:5 个关键 SQL 语句差异与规避方案

H2 与 MySQL 单元测试兼容性:5 个关键 SQL 语句差异与规避方案

H2与MySQL单元测试兼容性:5个关键SQL语句差异与规避方案1. 单元测试中的数据库兼容性挑战在Java开发领域,单元测试是保证代码质量的重要环节。当应用涉及数据库操作时,测试环境的搭建往往成为开发者的痛点。H2数据库因其轻量级、内存模式和快…

2026/7/6 0:01:17 阅读更多 →
Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘

Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘

Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘 【免费下载链接】rbtray A fork of RBTray from http://sourceforge.net/p/rbtray/code/. 项目地址: https://gitcode.com/gh_mirrors/rb/rbtray 你是否厌倦了Windows任务栏上密密麻麻的图标&…

2026/7/6 0:01:17 阅读更多 →
Visual C++ 运行时库一键安装终极指南:告别DLL缺失烦恼

Visual C++ 运行时库一键安装终极指南:告别DLL缺失烦恼

Visual C 运行时库一键安装终极指南:告别DLL缺失烦恼 【免费下载链接】vcredist AIO Repack for latest Microsoft Visual C Redistributable Runtimes 项目地址: https://gitcode.com/gh_mirrors/vc/vcredist 你是否曾经遇到过这样的情况:下载了…

2026/7/6 0:05:19 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/6 8:11:50 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/6 8:11:52 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/6 6:52:56 阅读更多 →

月新闻