Python 入门:用字典管好一组有名字的数据
学 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 文件,数据就从内存里"落袋"了。
- 点赞
- 收藏
- 关注作者
评论(0)