在Python中复制2D列表

您好我想复制一个2D列表,这样,如果我修改1列表,另一个不被修改。

对于1D列表,我只是这样做的:

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

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

但是这不适用于2D列表:

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

如果我修改b,a也会被修改。

我该如何解决?

对于一个更通用的解决scheme,无论维数如何,都可以使用copy.deepcopy()

 import copy b = copy.deepcopy(a) 
 b = [x[:] for x in a]