DEV Community

Cover image for #Day7 - Dictionaries in Python
Rahul Banerjee
Rahul Banerjee

Posted on • Originally published at


#Day7 - Dictionaries in Python

Today we will be talking about some advanced concepts of Dictionaries in Python. Dictionaries are essentially a Hashmap in Python and have a lookup time of O(1)


The dictionary dict_10 has 10 elements and the dictionary has dict_100000 has 100000 elements. Both the if statements check if an element is a member of the dictionary but irrespective of the size of the dictionary size, the time taken is almost the same (It's in nanoseconds)


An object can be a key of a dictionary if and only if it's hashable. As I discussed in my previous article (Day 5), only String, Boolean, Integer, Float, Tuples, and frozen Sets are hashable while lists, sets, and dictionaries are not hashable.

Accessing an element

Although you can use [ ] operator, it is safer to use the get() function. If the key is not present in the dictionary, it returns a None instead of raising a Key Error. Additionally, you can also pass the default value. In the last print statement, a default empty string is returned if the key is not found.

Inserting a key-value pair where the value is a list or dictionary


In line 2, since key2 doesn't exist the second line would give an error. To avoid the error, we can use the setdefault() function. If the key doesn't exist, it creates a key-value pair with the default value specified. This can also be used when we have a dictionary as a value.

Merging Dictionaries

The update method merges two dictionaries.


In the above case, the key-value pairs of dict2 are added to dict1. If there are any common keys present, the value is updated. In the above case, key1 is in both dictionaries. As a result of the update, the value of key1 is changed to Value 3
Below is the output of the print statement

{'key1': 'Value 3', 'key2': 'Value 2'}
Enter fullscreen mode Exit fullscreen mode


In the above case, the value of key1 in dict2 changes to Value 1. Below is the output of the statement

{'key1': 'Value 1', 'key2': 'Value 2'}
Enter fullscreen mode Exit fullscreen mode

Copying Dictionaries


Copying using the assignment operator creates a shallow copy, i.e it actually creates and assigns a reference to the dictionary. Any changes made in dict2 are also reflected in dict1. We can use the id() function to check the memory address of the dictionaries, both of them have the same address. As a result, any changes made in dict1 or dict2 are reflected in both dictionaries.


In the above case, we are creating a deep copy, i.e the values are copied. Therefore any changes in dict2 are not shown in dict1. It is always safer to do a deepcopy to avoid unintentional updates to the original dictionary


  • A dictionary has a lookup time of O(1)
  • It is safer to use the get() method when accessing elements in a dictionary
  • Use setdefault() when you want to store a create a dictionary of lists or a dictionary of dictionaries
  • Use deepcopy to copy dictionary to avoid unintentional updates to the original dictionary

Top comments (0)

Timeless DEV post...

Git Concepts I Wish I Knew Years Ago

The most used technology by developers is not Javascript.

It's not Python or HTML.

It hardly even gets mentioned in interviews or listed as a pre-requisite for jobs.

I'm talking about Git and version control of course.

One does not simply learn git