Python 入门:用字典管好一组有名字的数据

举报
Xavian 发表于 2026/11/06 06:20:46 2026/11/06
【摘要】 学 Python 到一定时候,你会遇到一个别扭的时刻:列表能装很多东西,可取东西只能靠位置。第 0 个是谁、第 1 个是谁,写代码的人记得,读代码的人得一个一个数。东西一多,位置就靠不住了。这时候该请出字典了。字典(dict)是 Python 里最常用的一组数据结构。它不按位置存东西,而是按名字存:每个值都配一个键(key),想找谁,直接叫它的名字。写起来像这样:student = {"na...

学 Python 到一定时候,你会遇到一个别扭的时刻:列表能装很多东西,可取东西只能靠位置。第 0 个是谁、第 1 个是谁,写代码的人记得,读代码的人得一个一个数。东西一多,位置就靠不住了。这时候该请出字典了。

字典(dict)是 Python 里最常用的一组数据结构。它不按位置存东西,而是按名字存:每个值都配一个键(key),想找谁,直接叫它的名字。写起来像这样:

student = {"name": "小林", "age": 22, "city": "上海"}

花括号里是三对键和值。想知道这名学生住哪座城市,不用数它是第几个,直接写 student["city"],拿到 "上海"。键就是数据的名字,有了名字,代码读起来像人话。

字典最常用的四个动作,分别是增、查、改、删。

查是最常用的。除了用方括号直接取,还可以用 get 方法:student.get("age") 返回 22;如果键不存在,get 会返回 None 而不是报错。比如查一个没登记的字段 student.get("phone"),得到 None,程序不会崩。这个小差别在实际写代码时很有用:不确定的键用 get,确定的键用方括号。

改也很直接,给已有的键重新赋值就行:student["age"] = 23,年龄就更新了。增和改用的是同一个写法——给一个不存在的键赋值,就是新增:student["major"] = "计算机",字典里就多了一对。删用 del student["city"],或者用 pop 方法顺便把删掉的值拿出来用。

新手最容易踩的坑有两个。第一个是键必须唯一,同一个键写两遍,后面的值会把前面的盖掉,而且不会有任何提醒。第二个是键的类型有限制:字符串、数字这类不可变的东西能当键,列表不行——因为列表的内容会变,变了就找不到了。刚开始用的时候,键基本都用字符串,不容易出错。

字典真正厉害的地方,是和其他结构搭起来用。一个学生是一本字典,一个班的学生就是一列字典:

students = [
    {"name": "小林", "score": 88},
    {"name": "阿杰", "score": 92},
]

想找最高分,循环一遍比较 score 就行。数据长这样,存进 JSON 文件几乎不用转换,读接口返回的数据也常常是这个形状。很多教程一上来就讲嵌套和推导式,容易把人吓跑;其实先把"一本字典管一个人、一列字典管一群人"用熟,够应付大部分日常场景了。

再往前一步,是用字典做"查表"。比如把星期几映射成中文:

weekday = {0: "周一", 1: "周二", 2: "周三", 3: "周四", 4: "周五"}

查 weekday[2] 得到 "周三"。这种写法比一串 if...elif 干净得多,查表是字典最典型的用法之一,写配置、做翻译、存状态都用得上。

最后给一个小练习,十分钟就能做完:用字典存三样东西——你自己的名字、正在学的技能、今天想完成的一件小事,再用 get 查一次、用赋值改一次、加一个新键,最后把整本字典打印出来。跑通了,字典就算入门了。明天可以接着试试把这本字典写进一个 JSON 文件,数据就从内存里"落袋"了。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。