Python Dictionary copy() method returns a shallow copy of the dictionary. let’s see the Python Dictionary copy() method with examples:
Examples
Input: original = {1:'Lazyroar', 2:'for'} new = original.copy() // Operation Output: original: {1: 'one', 2: 'two'} new: {1: 'one', 2: 'two'}
Syntax of copy() method
Syntax: dict.copy()
Return: This method doesn’t modify the original, dictionary just returns copy of the dictionary.
Python Dictionary copy() Error:
As we are not passing any parameters, there is no chance of any error.
Example 1: Examples of Python Dictionary copy()
Python program to demonstrate the working of dictionary copy.
Python3
original = { 1 : 'Lazyroar' , 2 : 'for' } # copying using copy() function new = original.copy() # removing all elements from the list # Only new list becomes empty as copy() # does shallow copy. new.clear() print ( 'new: ' , new) print ( 'original: ' , original) |
Output:
new: {} original: {1: 'Lazyroar', 2: 'for'}
Example 2: Python Dictionary copy() and update
Python program to demonstrate the working of dictionary copy. i.e. Updating dict2 elements and checking the change in dict1.
Python3
# given dictionary dict1 = { 10 : 'a' , 20 : [ 1 , 2 , 3 ], 30 : 'c' } print ( "Given Dictionary:" , dict1) # new dictionary and # copying using copy() method dict2 = dict1.copy() print ( "New copy:" , dict2) # Updating dict2 elements and # checking the change in dict1 dict2[ 10 ] = 10 dict2[ 20 ][ 2 ] = '45' # list item updated print ( "Updated copy:" , dict2) |
Output:
Given Dictionary: {10: 'a', 20: [1, 2, 3], 30: 'c'} New copy: {10: 'a', 20: [1, 2, 3], 30: 'c'} Updated copy: {10: 10, 20: [1, 2, '45'], 30: 'c'}
Difference between shallow copy and deep copy
It means that any changes made to a copy of the object do not reflect in the original object. In python, this is implemented using “deepcopy()” function. whereas in shallow copy any changes made to a copy of an object do reflect in the original object. In python, this is implemented using the “copy()” function.
Example 1: Using copy()
Unlike copy(), the assignment operator does deep copy.
Python3
# Python program to demonstrate difference # between = and copy() original = { 1 : 'Lazyroar' , 2 : 'for' } # copying using copy() function new = original.copy() # removing all elements from new list # and printing both new.clear() print ( 'new: ' , new) print ( 'original: ' , original) original = { 1 : 'one' , 2 : 'two' } # copying using = new = original # removing all elements from new list # and printing both new.clear() print ( 'new: ' , new) print ( 'original: ' , original) |
Output:
new: {} original: {1: 'Lazyroar', 2: 'for'} new: {} original: {}
Example 2: Using copy.deepcopy
Unlike deepcopy(), the assignment operator does deep copy.
Python3
import copy # Python program to demonstrate difference # between = and copy() original = { 1 : 'Lazyroar' , 2 : 'for' } # copying using copy() function new = copy.deepcopy(original) # removing all elements from new list # and printing both new.clear() print ( 'new: ' , new) print ( 'original: ' , original) original = { 1 : 'one' , 2 : 'two' } # copying using = new = original # removing all elements from new list # and printing both new.clear() print ( 'new: ' , new) print ( 'original: ' , original) |
Output:
new: {} original: {1: 'Lazyroar', 2: 'for'} new: {} original: {}