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])
我想存储一个集合,然后就地删除一些元素,例如:
>>> 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])