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