58

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

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

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

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

但这不适用于二维列表:

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

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

我该如何解决?

4

2 回答 2

80

对于更通用的解决方案,无论维度数量如何,请使用copy.deepcopy()

import copy
b = copy.deepcopy(a)
于 2010-03-29T23:13:01.870 回答
71
b = [x[:] for x in a]
于 2010-03-29T23:11:48.813 回答