Python: 如何像集合一样存储可变变量?

Python: How to store mutable variables like sets?

我想存储一个集合,然后就地删除一些元素,例如:

>>> A = set({1,2,3})
>>> B = A
>>> A.remove(3)

但是 B 也发生了变化:

>>> B 
set([1, 2])

有没有一种方法可以存储 A 并且在不使用的情况下不更改 B:

>>> A = A - {3}

您要查找的函数是 copy 中的 deepcopy

>>> from copy import deepcopy
>>> A = set({1,2,3})
>>> B = deepcopy(A)
>>> A.remove(3)
>>> A
set([1, 2])
>>> B
set([1, 2, 3])

所以你需要这样写:

A = {1,2,3}
B = A.copy()
A.remove(3)
print(B)

打印:

{1, 2, 3}

你需要使用copy,set是不可变对象的集合,set的元素不能原地改变,所以不需要深拷贝。

a = set({1,2,3})
b = a.copy()
a.remove(1)
>>> a
set([2, 3])
>>> b
set([1, 2, 3])