Python 中的 set copy() 方法


在本教程中,我们将学习关于 **copy** 方法集合数据结构的内容。让我们详细了解一下。

**copy** 方法用于获取集合的 **浅拷贝**。

让我们看看不同的例子来理解集合的 **普通** 拷贝和 **浅** 拷贝。

普通拷贝

按照以下步骤并理解输出。

  • 初始化一个集合。
  • 使用赋值运算符将集合赋值给另一个变量。
  • 现在,向复制的集合中添加另一个元素。
  • 打印两个集合。

你不会发现任何区别。赋值运算符返回集合的 **引用**。两个集合都指向内存中的同一个对象。因此,对任何一个集合所做的任何更改都将反映在两个集合中。

示例

 在线演示

# initialzing the set
number_set = {1, 2, 3, 4, 5}
# assigning the set another variable
number_set_copy = number_set
# changing the first value of number_set_copy
number_set_copy.add(6)
# printin the both sets
print(f"Set One: {number_set}")
print(f"Set Two: {number_set_copy}")

输出

如果你运行上面的代码,你将得到以下结果。

Set One: {1, 2, 3, 4, 5, 6}
Set Two: {1, 2, 3, 4, 5, 6}

正如我们预期的那样,当我们更改第二个集合时,第一个集合也发生了更改。如何避免这种情况?

我们可以使用 **浅拷贝** 来复制集合。有多种方法可以对集合进行浅拷贝。其中一种方法是使用 **集合** 的 copy 方法。

示例

让我们看看使用 **copy** 方法的示例。

 在线演示

# initialzing the set
number_set = {1, 2, 3, 4, 5}
# shallow copy using copy
number_set_copy = number_set.copy()
# changing the first value of number_set_copy
number_set_copy.add(6)
# printin the both sets
print(f"Set One: {number_set}")
print(f"Set Two: {number_set_copy}")

输出

如果你运行上面的代码,你将得到以下结果。

Set One: {1, 2, 3, 4, 5}
Set Two: {1, 2, 3, 4, 5, 6}

如果你查看输出,你不会发现第一个 **集合** 有任何更改。

结论¶

如果你对本教程有任何疑问,请在评论区提出。

更新于:2020年7月11日

225 次浏览

启动你的 职业生涯

通过完成课程获得认证

开始学习
广告