← 返回学习笔记
编程基础

学习手记 / 01

Python 列表和字典,什么时候用哪个?

从一组学习任务出发,理解按位置访问和按键查找的区别。

先想清楚数据需要怎样被使用,再选择合适的容器。

按顺序存放,用列表

列表适合存放一组有先后关系的数据,比如待学习的章节。可以通过从 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 起,语言保证字典保留插入顺序;字典并不是“无序”的同义词。
  • 列表和字典可以组合使用,例如用列表保存多篇笔记,每篇笔记用一个字典描述。
学习小结

关心“第几个”,先考虑列表;关心“这个名称对应什么”,先考虑字典。

延伸阅读

Python 官方文档:数据结构 ↗