开篇:这篇解决什么问题

发布时间:2026/7/10 6:54:36
开篇:这篇解决什么问题 列表适合存“一组同类数据”比如一批任务名、一组文件名、一串用户名称。但如果我要描述一个用户只写成列表就不太直观user [‘lunzi’, ‘active’, 7]这段代码能跑但过几天再看很容易忘记 active 和 7 分别代表什么。字典更适合这种场景user {‘username’: ‘lunzi’,‘status’: ‘active’,‘task_count’: 7,}这样一看就清楚左边是字段名右边是具体值。我自己在工作里理解字典时最早也是从“配置项”和“用户信息”这类场景开始的。只要数据开始有字段、有状态、有层级字典就会变得很自然。本篇你会学到什么如何创建字典并通过键访问对应的值如何添加、修改、删除字典里的键值对items()、keys()、values() 分别适合什么遍历场景如何理解字典列表、字典中存列表、字典中存字典常见的 KeyError 怎么排查什么时候适合用 get()场景案例维护一份用户信息表这一篇不用外星人、比萨这些例子做主线我们换成更贴近实际工作的场景维护一份简单的用户信息表。假设我们要记录用户的基础信息、状态、权限和最近处理的任务可以先从一个用户开始user {‘username’: ‘alice’,‘role’: ‘admin’,‘status’: ‘active’,‘task_count’: 5,}print(user[‘username’])print(user[‘role’])这就是字典最核心的用法用一个明确的“键”找到对应的“值”。如果后续用户信息变多我们可以把多个字典放进列表里users [{‘username’: ‘alice’, ‘role’: ‘admin’, ‘status’: ‘active’},{‘username’: ‘bob’, ‘role’: ‘developer’, ‘status’: ‘inactive’},{‘username’: ‘charlie’, ‘role’: ‘tester’, ‘status’: ‘active’},]for user in users:print(user[‘username’] ’ - ’ user[‘status’])这类结构在实际脚本里很常见一组用户、一组任务、一组配置、一组接口返回数据都可以这样组织。知识点拆解创建字典字典使用 {} 表示里面是一组键值对user {‘username’: ‘alice’,‘role’: ‘admin’,‘status’: ‘active’,}可以把它理解成一张小表键 值username alicerole adminstatus active键通常用字符串值可以是字符串、数字、列表、另一个字典等。访问字典中的值访问字典时用 字典名[键]user {‘username’: ‘alice’,‘role’: ‘admin’,‘task_count’: 5,}print(user[‘username’])print(user[‘task_count’])输出结果alice5这个写法很直接但有一个前提这个键必须存在。如果键不存在就会报 KeyError。添加键值对字典可以在创建之后继续添加内容user {‘username’: ‘alice’,‘role’: ‘admin’,}user[‘status’] ‘active’user[‘task_count’] 5print(user)这在写脚本时很常见先拿到一部分信息后面再补充状态、统计结果或处理结果。修改字典中的值修改字典也使用同样的写法user {‘username’: ‘alice’,‘status’: ‘active’,}user[‘status’] ‘inactive’print(user[‘status’])如果把字典看成一份用户档案修改值就像更新用户状态。删除键值对删除字典里的某个字段用 deluser {‘username’: ‘alice’,‘role’: ‘admin’,‘temporary_token’: ‘abc123’,}del user[‘temporary_token’]print(user)注意del 删除后这个键值对就没有了。后面如果还访问 user[‘temporary_token’]会报错。遍历所有键值对items()如果想把字典里的键和值都拿出来用 items()user {‘username’: ‘alice’,‘role’: ‘admin’,‘status’: ‘active’,}for key, value in user.items():print(key : ’ value)输出结果username: alicerole: adminstatus: active这个方法适合做配置检查、日志输出、字段展示。遍历所有键keys()如果只关心有哪些字段可以遍历键user {‘username’: ‘alice’,‘role’: ‘admin’,‘status’: ‘active’,}for key in user.keys():print(key)其实直接写 for key in user: 也可以默认遍历的就是键for key in user:print(key)初学阶段建议先写清楚一点用 keys() 更容易看出意图。遍历所有值values()如果只关心值用 values()favorite_languages {‘alice’: ‘python’,‘bob’: ‘java’,‘charlie’: ‘python’,}for language in favorite_languages.values():print(language)如果想去重可以配合 set()for language in set(favorite_languages.values()):print(language)这里 set() 会把重复的值合并掉。比如多个用户都喜欢 Python最后只显示一次。字典列表一组结构相似的数据当你有多个用户每个用户都有自己的字段时可以使用“列表中存字典”users [{‘username’: ‘alice’, ‘role’: ‘admin’, ‘status’: ‘active’},{‘username’: ‘bob’, ‘role’: ‘developer’, ‘status’: ‘inactive’},{‘username’: ‘charlie’, ‘role’: ‘tester’, ‘status’: ‘active’},]for user in users:if user[‘status’] ‘active’:print(user[‘username’] ’ is active.)这类结构在实际工作里非常常见。比如批量用户信息批量任务列表批量订单数据批量接口返回结果10. 字典中存列表一个字段对应多个值有时候一个字段不是单个值而是一组值。比如一个用户可以有多个权限user {‘username’: ‘alice’,‘permissions’: [‘read’, ‘write’, ‘delete’],}print(user[‘username’] ’ has permissions:)for permission in user[‘permissions’]:print(- ’ permission)