先想清楚数据需要怎样被使用,再选择合适的容器。
按顺序存放,用列表
列表适合存放一组有先后关系的数据,比如待学习的章节。可以通过从 0 开始的位置访问,也可以逐个遍历。
topics = ["变量", "条件判断", "循环"]
print(topics[0]) # 变量
for topic in topics:
print(topic)
通过名称查找,用字典
字典把键和值关联起来,适合表达一条记录的不同属性。键需要可哈希,字符串是常见选择;访问不存在的键会引发 KeyError,使用 get 可以指定默认值。
note = {"title": "认识 Python", "status": "学习中"}
print(note["title"])
print(note.get("author", "未填写"))
两个容易混淆的地方
- Python 3.7 起,语言保证字典保留插入顺序;字典并不是“无序”的同义词。
- 列表和字典可以组合使用,例如用列表保存多篇笔记,每篇笔记用一个字典描述。
学习小结
关心“第几个”,先考虑列表;关心“这个名称对应什么”,先考虑字典。