Python 列表复制垃圾收集

Python List Copying Garbage Collection

我有一个列表 a 并将其设置为 [1, 2, 3, 4, 5]。然后我将 b 设置为 a。我的目标是制作 a 的两个独立版本,也就是说,我希望 b 改变而 a 不改变。 但是,当我从 b 中删除 5 时,a 变成 [1, 2, 3, 4],与 b 完全一样! 我的代码如下所示:

a = [1, 2, 3, 4, 5]
b = a
b.remove(5)
print(b, a)

这是我的输出:

[1, 2, 3, 4] [1, 2, 3, 4]

我怎样才能实现我的目标?

要复制 a,您可以使用:

b = a[:]

这个问题已经asked already

或者您也可以加入列表:

a = [1,2,3,4,5]
b = a[:4]
print(a,b)

可以在不改变原列表的情况下使用下面的代码


a = [1,2,3,4,5]
b = a.copy()