为什么用Deepcopy函数将我的Deepcopied列表替换为较新版本的原始列表?

时间:2019-06-01 22:00:20

标签: python list reference copy

deepcopy()函数不起作用。复制的列表会被原始列表中的更改所覆盖。

我在Sudoku求解器上创建。为了查找错误,我想在一个大列表中跟踪数独的所有步骤。但是,大列表仅显示数独的实际状态。

>>> R = [1, 4, 6]

>>> S = [[1,4], [1,2], [1,5]]

>>> R.append(copy.deepcopy(S))

>>> R

[1, 4, 6, [[1, 4], [1, 2], [1, 5]]]

>>> S = []

>>> R

[1, 4, 6, [[1, 4], [1, 2], [1, 5]]]

这就是它应该如何工作的,并且在这个简单的示例中它可以做到。 它不在我的文件中,R看起来像:[1, 4, 6, []] 但是S会存储实际的数独。但是我的文件很大,所以我会为您保存。

我想我错过了关于deepcopy函数和python使用引用来分配变量的方式的一些知识...我也尝试了list()copy()函数来制作副本,但一无所获到目前为止工作。

Alvast bedankt

0 个答案:

没有答案