核心要点
list 可变、tuple 不可变
tuple 可哈希(元素可哈希时)、更省内存
知道各自适用场景
简要回答
list 用 [],可变,适合动态序列;tuple 用 (),不可变,可作 dict 键、函数多返回值,通常略省内存。
回答思路
【定义】用一句话说清「Python 中 list 与 tuple」
【原理】讲清关键机制或步骤(2~3 点)
【例子】举一个真实项目、论文或产品中的例子
【对比】与易混淆概念或替代方案比较(如有)
【收尾】总结适用场景 + 一个局限或风险
常见误区
⚠️ 常见踩坑
只罗列名词、不会举例;混淆相似概念;忽略工程约束(成本、延迟、数据质量)。不确定时应主动说明假设。
追问
追问 1:tuple 真的完全不可变吗?
tuple 自身不能增删改元素,但若元素是 mutable list,list 内容仍可改:t = ([1],); t[0].append(2) 合法。此时 tuple 不可哈希。
追问 2:何时用 namedtuple 或 dataclass 替代 tuple?
字段有语义名时 Point(x=1, y=2) 比 (1, 2) 可读。dataclass 功能更强(默认值、方法);namedtuple 更轻量不可变。
追问 3:list * n 有什么坑?
[[0]] * 3 三个元素引用同一 list,改 [0][0]=1 全变。应 [[] for _ in range(3)] 或 [0] * 3(不可变元素安全)。
🔗 相似问题
同一考点的不同问法,换着练更稳
没找到想看的面试题?把你想看的告诉我们 →
延伸学习
按主题分类的相关资源,便于系统复习
