我想要复制一个2D列表,这样如果我修改一个列表,则另一个列表不会被修改。
对于一维列表,我只是这样做:
a = [1, 2]
b = a[:]
现在,如果我修改b
,则a
不会被修改。
但这不适用于二维列表:
a = [[1, 2],[3, 4]]
b = a[:]
如果我修改b
,a
也会被修改。
我该如何解决这个问题?
答案 0 :(得分:51)
对于无论维数多少都能使用的更通用的解决方案,请使用copy.deepcopy()
:
import copy
b = copy.deepcopy(a)
答案 1 :(得分:46)
b = [x[:] for x in a]
答案 2 :(得分:0)
您也可以在不导入副本程序包的情况下使用此代码
b=a.copy()