在Python中复制嵌套列表

时间:2010-03-29 23:10:34

标签: python list copy deep-copy

我想要复制一个2D列表,这样如果我修改一个列表,则另一个列表不会被修改。

对于一维列表,我只是这样做:

a = [1, 2]
b = a[:]

现在,如果我修改b,则a不会被修改。

但这不适用于二维列表:

a = [[1, 2],[3, 4]]
b = a[:]

如果我修改ba也会被修改。

我该如何解决这个问题?

3 个答案:

答案 0 :(得分:51)

对于无论维数多少都能使用的更通用的解决方案,请使用copy.deepcopy()

import copy
b = copy.deepcopy(a)

答案 1 :(得分:46)

b = [x[:] for x in a]

答案 2 :(得分:0)

您也可以在不导入副本程序包的情况下使用此代码

b=a.copy()
相关问题