📘 Python字典操作手册:像查电话簿一样玩转键值对
(附:表情包护体,妈妈再也不用担心我学编程啦!)
欢迎您在底部评论区留言,一起交流~
🎯 灵魂拷问:为什么需要字典?
假设你要存全班同学的成绩:
- 用列表:只能按
[张三成绩, 李四成绩...],找成绩得记位置❌
- 用字典:
{"张三":95, "李四":88},直接名字查分✅
结论:字典=现实中的电话簿,通过名字(键)快速找到号码(值)!
🔑 字典基础:创建与访问
1️⃣ 创建字典(两种方式)
2️⃣ 访问值:用钥匙(键)开锁(值)
🛠️ 常用操作六连击
① 增/改:一键到位
② 删:三招任选
③ 查:键、值、键值对
④ 合并字典:update()
⑤ 字典嵌套:套娃预警 🪆
❓ Q&A:新手的经典困惑
Q1:字典和列表最大的区别是?
A:列表靠位置找人(索引),字典靠名字找人(键)!就像查通讯录不需要记电话号码在第几行~😉
Q2:字典的键可以是列表吗?
A:达咩!🚫 键必须是不可变类型(数字、字符串、元组)。列表会变,就像不能用会融化的冰块当钥匙!❄️
Q3:为什么不能用while循环遍历字典?
A:字典本身是一个无序集合(Python 3.7+默认有序,但逻辑上仍建议视其为无序,主要是字典无下标,
while循环不方便索引)。使用for循环可以直接遍历键或键值对,而while循环需要手动维护一个计数器或其他条件,容易出错且不直观。比如:相比之下,
for循环更简洁优雅:Q4:字典的值可以是任何类型吗?
A:是的!值可以是任意类型,包括列表、字典等复杂数据结构。例如:
📌 总结表:字典核心知识点
特性/操作 | 说明 | 示例 |
键值对结构 | {键:值},键唯一且不可变 | {"name": "小明"} |
访问元素 | 用 [键]或get()方法 | dict["age"] |
增/改元素 | 直接赋值 | dict["new_key"] = 10 |
删除元素 | del、pop()、clear() | del dict["key"] |
遍历 | keys(), values(), items() | for k, v in dict.items() |
嵌套结构 | 字典中存字典/列表 | {"data": {"id":1}} |
键的要求 | 必须是不可变类型 | 数字、字符串、元组 |
值的要求 | 可以是任意类型 | 列表、字典、函数等 |
⭐ 字典的特点总结
- 高效查找:字典通过键(key)直接定位到对应的值(value),查找效率极高,时间复杂度接近O(1)。
- 键唯一性:字典中的键是唯一的,如果插入相同的键,后面的值会覆盖前面的值。
- 键不可变:字典的键必须是不可变类型(如字符串、数字、元组),因为字典内部通过哈希算法来存储键值对,只有不可变类型才能保证哈希值的稳定性。
- 值多样性:字典的值可以是任意类型,包括列表、字典、函数等复杂数据结构,支持灵活的数据组织形式。
- 无序性:虽然从Python 3.7开始,字典在实现上保持了插入顺序,但从逻辑上我们仍然应该将其视为无序集合。
- 动态可变:字典是可变的,可以随时添加、修改或删除键值对,非常灵活。
✏️ 练习题:巩固你的字典技能
练习1:创建一个字典,存储学生信息
要求:
- 学生信息包括姓名、年龄、成绩
- 使用字典嵌套的方式存储至少两名学生的信息
示例代码:
讲解:
这里我们使用了字典嵌套的方式,每个学生的姓名作为外层字典的键,对应的值是一个内层字典,包含该学生的详细信息。
练习2:遍历字典并打印所有学生信息
要求:
- 遍历字典,打印每个学生的姓名、年龄和成绩
示例代码:
讲解:
通过
items()方法可以同时获取键和值,方便地进行遍历。info['年龄']和info['成绩']分别访问内层字典的值。练习3:修改某个学生的成绩
要求:
- 将“小明”的成绩改为95
示例代码:
讲解:
通过两层键访问嵌套字典的值,并对其进行修改。
练习4:新增一名学生
要求:
- 新增一名学生“小刚”,年龄为16,成绩为88
示例代码:
讲解:
直接给字典新增一个键值对即可完成添加操作。
💡 一句话记忆:字典=现实中的查找手册,用键直捣黄龙找值,操作比列表更“指名道姓”!🎯
(教程结束!现在你已经是“字典小能手”了,快去用代码写个“班级花名册”练手吧~🚀)
- 作者:神秘人
- 链接:https://blog.tianjiaji.top//url/1a1183c0-6139-8038-b83c-f1028e8a9685
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。










