Skip to main content

Section 11.4 Aliasing and Copying

Because dictionaries are mutable, you need to be aware of aliasing (as we saw with lists). Whenever two variables refer to the same dictionary object, changes to one affect the other. For example, opposites is a dictionary that contains pairs of opposites.
As you can see from the is operator, alias and opposites refer to the same object.
If you want to modify a dictionary and keep a copy of the original, use the dictionary copy method. In the following program, since a_copy is a copy of the dictionary, changes to it will not affect the original.
a_copy = opposites.copy()
a_copy['right'] = 'left'    # does not change opposites

Checkpoint 11.4.1.

    What is printed by the following statements?
    my_dict = {"cat": 12, "dog": 6, "elephant": 23, "bear": 20}
    your_dict = my_dict
    your_dict["elephant"] = 999
    print(my_dict["elephant"])
    
  • 23
  • my_dict and your_dict are both names for the same dictionary.
  • None
  • The dictionary is mutable, so changes can be made to the keys and values.
  • 999
  • Yes, since your_dict is an alias for my_dict, the value for the key "elephant" has been changed.
  • Error, there are two different keys named "elephant".
  • There is only one dictionary with only one key named "elephant". The dictionary has two different names, my_dict and your_dict.