🐍Python 常用容器与迭代
list tuple dict set对比
面试回答
常见问法
list、tuple、dict、set 分别适合什么场景?
回答
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底层也依赖哈希