🎯 1. 简述下 Python 中的字符串、列表、元组和字典
关键词:可变性、有序性、哈希性、用途对比
✅ 标准回答:
这是 Python 最基础的四种数据结构,它们的核心区别在于是否可变和使用场景:
🔸 字符串(str):
- 不可变序列,存储文本数据。
- 支持切片、拼接、格式化等操作。
- 示例:
s = "hello"→s[0] = 'H'❌ 报错
🔸 列表(list):
- 可变有序序列,最常用容器。
- 支持增删改查、切片、推导式。
- 示例:
lst = [1, 2, 3]→lst.append(4)✅
🔸 元组(tuple):
- 不可变有序序列,常用于固定结构或作为字典键。
- 性能略优于列表,语义上表示'不应修改'。
- 示例:
tup = (1, 2, 3)→tup[0] = 0❌ 报错
🔸 字典(dict):
- 可变无序映射(Python 3.7+ 保持插入顺序),键值对存储。
- 键必须是可哈希对象(如 str, int, tuple),值任意。
- 查找效率 O(1),基于哈希表实现。
- 示例:
d = {"name": "Alice", "age": 25}
💡 加分句:
'我在项目中常用元组做函数多返回值,用字典配置参数,列表处理动态数据,字符串则几乎无处不在。理解它们的可变性是避免 bug 的关键。'
🎯 2. 深拷贝和浅拷贝概念理解
关键词:引用复制 vs 对象复制、copy 模块、嵌套对象
✅ 标准回答:
在 Python 中,赋值操作只是引用传递,不创建新对象。拷贝分为两种:
🔸 浅拷贝(Shallow Copy):
- 创建新对象,但内部元素仍是原对象的引用。
- 适用于顶层对象可变、子对象不可变的场景。
- 实现方式:
obj.copy()/list(obj)/copy.copy(obj)
🔸 深拷贝(Deep Copy):
- 递归复制所有层级的对象,完全独立。
- 适用于嵌套可变对象(如列表套列表)。
- 实现方式:
import copy; copy.deepcopy(obj)
🔹 示例对比:
import copy
a = [[1, 2], [, ]]
b = a.copy()
c = copy.deepcopy(a)
a[][] =
(b)
(c)

