在Python中复制嵌套列表

问题描述 投票:36回答:3

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

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

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

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

但这不适用于二维列表:

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

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

我该如何解决?

python list copy deep-copy
3个回答
51
投票

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

import copy
b = copy.deepcopy(a)

47
投票
b = [x[:] for x in a]

0
投票

您也可以在不导入复制包的情况下使用此代码

b=a.copy()
© www.soinside.com 2019 - 2024. All rights reserved.