首页 > 解决方案 > 更改副本的值也会更改原始值

问题描述

更改作为 a 副本的变量 b 的值也会更改 a 的值。

a = [[0]]
b = a.copy()

print("a before", a)

b[0][0] = 1

print("a after ", a)

印刷:

a before [[0]]
a after  [[1]]

虽然这有效:

a = [0]
b = a.copy()

print("a before", a)

b[0] = 1

print("a after ", a)

印刷:

a before [[0]]
a after  [[0]]

标签: pythonlistvariablescopy

解决方案


结果是 copy.deepcopy 有效。

import copy

a = [[0]]
b = copy.deepcopy(a)

print("a before", a)

b[0][0] = 1

print("a after ", a)

印刷:

a before [[0]]
a after  [[0]]

推荐阅读