The copy() method returns a shallow copy of the set in python. If we use “=” to copy a set to another set, when we modify in the copied set, the changes are also reflected in the original set. So we have to create a shallow copy of the set such that when we modify something in the copied set, changes are not reflected back in the original set. Syntax:
set_name.copy() set_name: Name of the set whose copy we want to generate.
Parameters:The copy() method for sets doesn’t take any parameters. Return value:The function returns a shallow copy of the original set. Below is the implementation of the above function:
Python3
# Python3 program to demonstrate the use # of join() function set1 = { 1 , 2 , 3 , 4 } # function to copy the set set2 = set1.copy() # prints the copied set print (set2) |
Output:
{1, 2, 3, 4}
Time complexity : O(1),
space complexity: O(n)
Shallow Copy Example :
Python
# Python program to demonstrate that copy # created using set copy is shallow first = { 'g' , 'e' , 'e' , 'k' , 's' } second = first.copy() # before adding print 'before adding: ' print 'first: ' ,first print 'second: ' , second # Adding element to second, first does not # change. second.add( 'f' ) # after adding print 'after adding: ' print 'first: ' , first print 'second: ' , second |
Output:
before adding: first: set(['s', 'e', 'k', 'g']) second: set(['s', 'e', 'k', 'g']) after adding: first: set(['s', 'e', 'k', 'g']) second: set(['s', 'e', 'k', 'g', 'f'])
Time complexity : O(1)
space complexity: O(n)