高仿模拟练习,完整编写程序并运行出结果,答案点击按钮展开
seat.csv 是 3×3 二维字符串数组(逗号分隔每列,无表头)。 要求:① 读取二维列表 original 并打印 3 行; ② 创建 original 的完全独立副本,把副本位置 0,0 的值改为 已占 两字,且 original 保持不变; ③ 输出修改后副本 0,0 与 original 0,0 两值是否相等(True/False)。
# seat.csv 示例:
# 空,空,空
# 空,空,空
# 空,空,空
import copy
original = []
with open("seat.csv") as f:
for line in f:
line = line.strip()
if not line:
continue
original.append( line.split(",") )
# 请在下面编写完整程序:打印 3 行 / 深拷贝副本改 0,0=已占 / 比较两值
# ① 打印 original 三行
for row in original:
print(",".join(row))
# ② 深拷贝并修改副本
dup = copy.deepcopy(original)
dup[0][0] = "已占"
# ③ 判断两值是否相等
print(dup[0][0] == original[0][0])
浅拷贝(dup = original[:] / list(original) / copy.copy)只拷贝外层列表引用,内部行仍共享。
必须用 copy.deepcopy 才能让二维列表完全独立。
改完 dup[0][0] = 已占 两字后,original[0][0] 仍为 空 字串,两者不等 → 输出 False。