Python 入门:用列表和字典把杂乱数据整理清楚
刚开始学 Python 时,很多人会被两个问题卡住:数据一多就乱,写出来的代码越改越难读。其实不必先学很多库,先把列表和字典这两个最基础的结构用熟,日常整理数据的活就已经能做好大半。本文用一个整理成绩单的小例子,讲清楚它们各自适合做什么,以及组合起来怎么用。
一、列表:按顺序装东西
列表就是一排有顺序的格子,适合装同类的一组东西,比如一周的步数、一批学生的姓名。它的特点是顺序固定,可以按位置取,也可以从头到尾遍历。
scores = [88, 92, 75, 91, 84]
print(scores[0])
print(sum(scores) / len(scores))
上面这段代码先取第一项,再算平均分。列表很直观,但只靠位置记东西容易出错:时间一长,你很难记得第三个数字到底代表谁。位置变了,含义也就跟着变了,这就是只用列表整理复杂数据时的常见麻烦。
二、字典:按名字找东西
字典不靠位置,靠名字,也就是键。每个键对应一个值,找东西时直接说名字,不用数位置。这正好适合给一条记录起名字,比如姓名、科目、分数。
student = {"name": "小林", "math": 92, "english": 88}
print(student["math"])
student["english"] = 90
用字典的好处是可读性好,代码读起来像在说话。即使字段顺序变了,取值的写法也不用变。需要注意的是,键不能重复,重复写同一个键,后面的值会覆盖前面的值,旧数据就丢了。
三、组合起来:列表装记录,字典做记录
真正实用的做法是把两者组合:用列表装多条记录,每条记录用一个字典表示。这样既能遍历全部记录,也能按名字取每个字段。
students = [
{"name": "小林", "math": 92},
{"name": "小陈", "math": 85},
]
for s in students:
print(s["name"], s["math"])
如果只想找出数学超过 90 分的人,再加一个条件判断就够了。先想清楚数据的形状,再写循环和判断,代码会比一上来就写复杂逻辑清爽得多。
四、新手常见的三个坑
第一,把数字和文字混在一个列表里做计算,结果很容易报错。先统一类型,再做运算。第二,用字典取值时拼错键名,程序会直接报错,写之前先确认键名有没有写对。第三,在循环里一边遍历列表一边删除元素,顺序会乱。需要删除时,先收集要删的项,循环结束后再处理。
结尾:先把形状想清楚
学 Python 不必贪多。遇到一堆数据时,先问自己两个问题:这些东西有没有顺序?每一条需不需要起名字?有顺序就用列表,需要名字就用字典,多条记录就用列表装字典。把形状想清楚,剩下的代码往往只是遍历、判断和取值。每天拿身边的一组小数据练一次,比如开销、读书记录或者运动步数,这种手感很快就能建立起来。
- 点赞
- 收藏
- 关注作者
评论(0)