Why use Inbuilt copy() function for sets in python when we can simply assign it?
本问题已经有最佳答案,请猛点这里访问。
下面给出了显示使用copy()函数的代码。
1 2 3 4 5 | s = set([1, 2, 3, 4, 5]) t = s.copy() g = s print s == t #Output: True print s == g #Output: True |
当我们可以简单地在g中分配s的值时,copy()函数的用途是什么?为什么我们有一个单独的函数("copy")来完成这个任务?
继续您的示例,修改g:s将更改,但不会更改。
1 2 3 4 5 6 7 | >>> g.add(4) >>> g set([1, 2, 3, 4]) >>> s set([1, 2, 3, 4]) >>> t set([1, 2, 3]) |
因为这两个任务不一样:
1 2 3 4 | >>> t is s False >>> g is s True |
1 2 3 4 5 | >>> g.add(6) >>> s set([1, 2, 3, 4, 5, 6]) >>> t set([1, 2, 3, 4, 5]) |
你可能会发现这本书很有用。
集合是Python中的可变对象,因此,根据您对它所做的操作,您可能希望在副本上进行操作,以防止您所做的任何更改的传播。
如果您确定正在执行的操作没有副作用,请继续执行并分配它。在这种情况下,请注意,对
来自文档:
Assignment statements in Python do not copy objects, they create bindings between a target and an object.
您可以在这里看到差异。注意,