🐍Python 常用容器与迭代

list tuple dict set对比

面试回答

常见问法

listtupledictset 分别适合什么场景?

回答

  • list:有序、可变,适合顺序存放和频繁追加
  • tuple:有序、不可变,适合固定结构数据
  • dict:键值映射,查找是高频优势
  • set:无重复元素集合,适合去重和成员判断
items = [1, 2, 3]
point = (10, 20)
user = {"name": "Tom", "age": 18}
tags = {"python", "ai"}

追问

  • 为什么字典和集合查找通常更快
  • 为什么 tuple 更适合做字典键
  • Python 3.7 以后 dict 为什么更常被当“有序映射”使用

原理展开

容器选型的关键不是死背定义,而是看:

  • 是否需要修改
  • 是否需要按键查找
  • 是否需要去重
  • 是否需要稳定顺序

典型面试结论:

  • 默认顺序存储选 list
  • 固定记录可考虑 tuple
  • 键值索引选 dict
  • 去重与集合运算选 set

易错点

  • 只会背“有序无序”,不会讲场景
  • 认为 tuple 只是“不能改的 list”
  • 不知道 set 底层也依赖哈希