在python中复制嵌套列表

Copying nested lists in Python

我想复制一个二维列表,这样如果我修改一个列表,另一个列表就不会被修改。

对于一维列表,我只需执行以下操作:

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

现在如果我修改ba就不会被修改。

但对于二维列表来说,这并不适用:

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

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

我该怎么解决这个问题?


对于更通用的解决方案,不管维度的数量如何,都可以使用copy.deepcopy()

1
2
import copy
b = copy.deepcopy(a)


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