复制清单中的变更会影响Python中的原始清单

时间:2019-07-17 18:23:15

标签: python python-3.x list

我有一个Python列表,已将其复制到第二个列表中。现在,如果我要在第二个列表中进行更改,那会影响原始列表,但是在复制列表元素时不应该发生这种情况。 奇怪的是,如果我以其他方式在复制列表中进行更改,那么这些更改只会反映在复制列表中,而不会反映在原始列表中(请参见下面的代码)。

问题How to clone or copy a list?的可接受答案显示了3种直接方式:_POSIX_SOURCEslicing [:]list(),但没有一个起作用(列表理解也给出了相同的结果如另一个答案中所建议)。我正在寻找答案,而没有使用任何库(.copy()copy.copy())来这样做,如上面链接中的其他答案所示。

编辑:我得到了juanpa.arrivillaga在评论中建议的此问题的解决方案。使用

copy.deepcopy()
copy = [item[:] for item in orig] #This worked as we are copying inner lists too now using item[:]

我希望通过复制列表,对副本进行任何更改都不会影响原始列表,但是我不会出现这种奇怪的行为。

0 个答案:

没有答案