鱼C论坛

 找回密码
 立即注册
12
返回列表 发新帖
楼主: 小甲鱼

[快问快答] 第023讲:列表(V)

[复制链接]
发表于 4 小时前 | 显示全部楼层
零基础入门学习Python封面
《零基础入门学习Python》
(最新版)
小甲鱼 著
立即购买
haly 发表于 2026-03-20 07:11
@FishC 以下代码中,哪一行会改变两个变量指向的内容 ...


在给定的代码中,我们使用浅拷贝(shallow copy)创建了 copy_matrix,这意味着 copy_matrix 是一个新列表,但其元素(子列表)与 matrix 中的子列表是同一个对象。


  1. matrix = [[1, 2], [3, 4]]
  2. copy_matrix = matrix.copy()
  3. matrix[0] = [5, 6]  # 行1
  4. matrix[1][0] = 7  # 行2
复制代码


分析如下:

- 行1:matrix[0] = [5, 6] 修改了 matrix 的第一个元素,使其指向新列表 [5, 6]。由于 copy_matrix 是浅拷贝,它仍然引用原来的子列表 [1, 2],因此 copy_matrix 的内容不变。

- 行2:matrix[1][0] = 7 修改了 matrix 的第二个子列表的第一个元素。由于 copy_matrix 共享同一个子列表对象,所以这个修改也会影响 copy_matrix,使得 copy_matrix[1] 变为 [7, 4]

因此,只有行2会改变两个变量指向的内容(即它们所引用的数据结构中的共享部分)。

答案:B. 只有行2

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2026-3-20 11:17

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表