From 1716472762ee7cc3dd693a2f37d5a3d48c1b95b4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E5=A0=83=E8=90=A5?= <1572506709@qq.com> Date: Wed, 7 Oct 2026 23:34:49 +0800 Subject: [PATCH] =?UTF-8?q?=E7=AE=80=E7=AD=94=E9=A2=98=E7=AC=AC1=E9=A2=98?= =?UTF-8?q?=EF=BC=9A=E6=B5=85=E6=8B=B7=E8=B4=9D=E4=B8=8E=E6=B7=B1=E6=8B=B7?= =?UTF-8?q?=E8=B4=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- written.md | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/written.md b/written.md index 0128188..272be2f 100644 --- a/written.md +++ b/written.md @@ -21,3 +21,28 @@ 10. get() 返回 None,[] 抛 KeyError —— `user.get("city")` 键不存在返回 None(不报错),`user["city"]` 键不存在抛 KeyError。 +二、简答题 + +第 1 题:浅拷贝与深拷贝 + +```python +a = [[1, 2], [3, 4]] +b = a.copy() +import copy +c = copy.deepcopy(a) +``` + +三者关系: + +- `a`:原列表 `[[1, 2], [3, 4]]` +- `b = a.copy()`:浅拷贝,外层列表是新的,但内层列表还是和 a 共享的同一个对象(`b[0] is a[0]` 为 True) +- `c = copy.deepcopy(a)`:深拷贝,外层、内层全是独立的新对象(`c[0] is a[0]` 为 False) + +执行 `a[0].append(99)` 后: + +- `b` → `[[1, 2, 99], [3, 4]]`(因为 b[0] 和 a[0] 是同一个内层列表,一起变了) +- `c` → `[[1, 2], [3, 4]]`(c 的内层是独立副本,不受影响) + +原因:浅拷贝只复制最外层容器,内部元素仍是引用(指向同一对象);深拷贝会递归复制每一层,得到完全独立的对象。 + +