Python 中何时该用 list,何时该用 dict?

选list还是dict取决于访问方式:需按索引/顺序操作(如追加、切片)用list;需通过键名快速查找(如用户信息、词频统计)用dict,因dict提供O(1)查找且语义清晰。

python 中何时该用 list,何时该用 dict?

选 list 还是 dict,关键看你要存什么、怎么用它。

用 list:按顺序存东西,靠位置找

当你需要保持插入顺序、按索引访问(比如第1个、第3个)、或者做追加、切片、遍历等操作时,list 更自然。它本质是个有序的容器。

  • 比如记录用户最近5次搜索词:search_history = ["python", "dict vs list", "pandas merge", "flask tutorial"]——你关心的是“最新的一条在末尾”,或“倒数第二条是什么”
  • 需要循环处理所有项,且顺序重要(如步骤列表、日志行)
  • 允许重复值(比如多次点击“刷新”,日志里就可能有多个 "refresh"

用 dict:按名字(键)存东西,靠名字找

当你想通过一个明确的标识快速定位某个值,而不是数它是第几个,那就该用 dict。它的核心优势是 O(1) 平均查找速度,以及语义清晰的键值映射关系。

  • 比如保存用户信息:user = {"name": "Alice", "age": 30, "city": "Beijing"}——你不会说“第0个字段是名字”,而是直接写 user["name"]
  • 统计词频:word_count = {"hello": 5, "world": 3}——键是单词,值是次数,查 "hello" 出来就是 5
  • 配置项、映射表、缓存结果(key 是输入,value 是计算结果)

别硬套:有些场景 list 和 dict 都能用,但语义不同

比如存三个人的分数:

风渡网上购物系统

风渡网上购物系统

这是一套完全免费的网上购物系统,无任何功能限制,该系统的所有功能均是开放可用的。省钱、省时、省力,又能使用到最好的asp网上购物系统。程序采用asp语言,纯手写代码,语言精练,无垃圾代码、文件。以“更快、更高、更强”为设计理念,以“服务第一,用户至上”为宗旨,为您打造功能强大、安全可靠、独具个性的网上商城后台地址:/a

下载

立即学习Python免费学习笔记(深入)”;

  • scores = [85, 92, 78] —— 你只关心“第一个人多少分”“最高分是多少”,不关心是谁的
  • scores = {"Alice": 85, "Bob": 92, "Charlie": 78} —— 你随时要查“Alice 得了多少分”,名字本身有意义

如果后来要支持按姓名查分,却用了 list,就得写 names = ["Alice", "Bob", "Charlie"]; scores[names.index("Alice")]——慢、易错、难读。

性能和限制也要留意

list 查找某个值(if x in my_list)是 O(n),数据一多就慢;dict 的 if key in my_dict 是 O(1)。但 dict 键必须是不可变类型(str、int、tuple),不能用 list 或 dict 当键。

  • 要频繁判断“某个元素是否存在”,优先考虑 dict(或 set,它本质是只存键的 dict)
  • 需要排序、分片、批量增删尾部,list 更合适
  • 不确定用哪个?先问自己:“我主要靠序号找,还是靠名字(含义)找?”——答完基本就清楚了

https://www.php.cn/faq/2018640.html

发表回复

Your email address will not be published. Required fields are marked *