w3resource

Python: Create a shallow copy of a given dictionary


3. Shallow Copy of Dictionary

Write a Python program to create a shallow copy of a given dictionary. Use copy.copy

Sample Solution:

Python Code:

import copy
nums_x = {"a":1, "b":2, 'cc':{"c":3}}
print("Original dictionary: ", nums_x)
nums_y = copy.copy(nums_x)
print("\nCopy of the said list:")
print(nums_y)
print("\nChange the value of an element of the original dictionary:")
nums_x["cc"]["c"] = 10
print(nums_x)
print("\nSecond dictionary:")
print(nums_y)

nums = {"x":1, "y":2, 'zz':{"z":3}}
nums_copy = copy.copy(nums)
print("\nOriginal dictionary :")
print(nums)
print("\nCopy of the said list:")
print(nums_copy)
print("\nChange the value of an element of the original dictionary:")
nums["zz"]["z"] = 10
print("\nFirst dictionary:")
print(nums)
print("\nSecond dictionary (copy):")
print(nums_copy)

Sample Output:

Original dictionary:  {'a': 1, 'b': 2, 'cc': {'c': 3}}

Copy of the said list:
{'a': 1, 'b': 2, 'cc': {'c': 3}}

Change the value of an element of the original dictionary:
{'a': 1, 'b': 2, 'cc': {'c': 10}}

Second dictionary:
{'a': 1, 'b': 2, 'cc': {'c': 10}}

Original dictionary :
{'x': 1, 'y': 2, 'zz': {'z': 3}}

Copy of the said list:
{'x': 1, 'y': 2, 'zz': {'z': 3}}

Change the value of an element of the original dictionary:

First dictionary:
{'x': 1, 'y': 2, 'zz': {'z': 10}}

Second dictionary (copy):
{'x': 1, 'y': 2, 'zz': {'z': 10}}

Flowchart:

Flowchart: Create a shallow copy of a given dictionary.

For more Practice: Solve these Related Problems:

  • Write a Python program to create a shallow copy of a dictionary using copy.copy, then update a value in a nested mutable object and print both dictionaries to observe the shared reference.
  • Write a Python function that takes a dictionary, creates a shallow copy with copy.copy, and then prints both the original and the copy to demonstrate that top-level keys are distinct while nested objects are shared.
  • Write a Python script to compare the memory addresses (using id()) of both the original dictionary and its shallow copy, particularly focusing on nested mutable values.
  • Write a Python program to create a shallow copy of a dictionary and then remove a key from the original, printing both dictionaries to show that the copy remains unchanged.

Go to:


Previous: Write a Python program to create a deep copy of a given list.
Next: Write a Python program to create a deep copy of a given dictionary.

Python Code Editor:

Have another way to solve this solution? Contribute your code (and comments) through Disqus.

What is the difficulty level of this exercise?

Test your Programming skills with w3resource's quiz.



Follow us on Facebook and Twitter for latest update.