Working with Dictionary in Python for Competitive Programming - Beginners
A Dictionary in Python is an ordered collection of key value pair. Learn how to work with Dictionary in Python for Competetive Programming.
In this tutorial we will see how to work with Dictionary in Python. Dictionary is most widely used composite data type used in Competitive Programming. This step-by-step guide will help you learn about how to work with Dictionaries in Python.
A Dictionary in Python is an ordered collection of key value pair. The type of a Dictionary in Python is identified by the dict keyword.
Properties of a Dictionary in Python
- Python Dictionary is an ordered collection of key-value pair.
- Python Dictionaries are implemented with the Hash Tables as the underlying data structure.
- Each element in a dictionary is called a Key-Value pair.
- All Keys of a dictionary must be unique.
- A key of a dictionary must be hashable. Un-hashable types such as lists cannot be a key of a dictionary.
- Keys of a dictionary does not have to be of same type. Keys of a
dictcan be of any datatype. - One of the Key of a dictionary can be
None.
Define a Dictionary in Python
To define or declare a Dictionary in Python, we use {} or dict() and assign it to a variable.
d1 = {}
d2 = dict()To define and initialize a dictionary at once, we can do the following.
d3 = {'Key1':'Value1', 'Key2': 'Value2'}The preceding example shows the in place definition and initialization of the dictionary in Python.
Initializing a dict using list of tuples
The dict() takes an optional parameter of type list of tuples.
Let's say we have list of tuples as follows.
tup = [(1,'hello'), (2, 'World')]The preceding tuple can be provided as an argument to the dict() to create a dictionary as follows.
tup = [(1,'hello'), (2, 'World')]
d4 = dict(tup)
print(d4)The output of the preceding code will be as follows.
{1: 'hello', 2: 'World'}Type of Dictionary in Python
To check the type of dictionary in Python, we use type(d1). The result will be <class 'dict'>
Add a Key Value pair to Dictionary in Python
Following is the syntax to inset or add elements to a dictionary.
dict[key] = valueIn the preceding syntax, the key can be of any hashable type and value can be any scalar, composite or custom data type.
For example, the following code snippet shows adding keys and values to a dictionary in Python.
d1['Website'] = 'WowDataScience'
d1['Url'] = 'https://wowdata.science'Access a Key Value pair from a Dictionary in Python
Access a key value pair of a dictionary using get method
The safest approach of accessing a key value pair of a dictionary in Python is by using get method.
The get method takes two arguments among which the first one is a required argument indicating the key that you want to find the value for in a dictionary. The second one is an optional argument, which indicates the default value to be returned in case the key you are trying to get value for is not found.
d1.get('Website')get method in PythonThis will print the following output.
'WowDataScience'get method in PythonOn the contrary, if you try to access a key that doesn't exists, you might want to see a custom message when set.
d1.get('randomkey', 'Key Not Found')get method in Python'Key Not Found'get method in PythonThe default value of None will be returned if you do not pass the second argument. Hence, accessing the key value pair of a dictionary using get is the safest approach.
Access a key value pair by using index syntax
Elements of a dictionary can be accessed given that you know the key that exists in the dictionary.
The syntax to access an element in the dictionary is
dict[key]For example, if you want to access the value of the key 'Website' you can do it as follows.
d1['Website']The preceding code will return the value 'WowDataScience'.
When you try to access a value that is not present in the dictionary, it will raise KeyError. For example, if we call d1['website'], the program will raise exception KeyError: 'website'.
This also indicates that strings as keys of a dictionary are case sensitive.
Update a Key Value pair of a Dictionary in Python
Following is the syntax to update the value of element given its key.
dict[existingkey] = newvalueLet's update the value for the key 'Website' in the d1 dictionary from 'WowDataScience' to string with spaces 'Wow Data Science'.
The code to update the value given a key of a dictionary is as follows.
d1['Website'] = 'Wow Data Science'Display all the key value pair in the Dictionary in Python
Let's print all the key value pair of the dictionary in Python.
print(d1)The preceding command will return the following output.
{'Website': 'Wow Data Science', 'Url': 'https://wowdata.science'}
Adding keys of different types to a Dictionary in Python
As a Dictionary in Python is implemented as Hash Table as a reference, the keys can be of any data type.
So, we will add keys of different data types to a Dictionary in Python as follows.
mydict = dict()
mydict['name'] = 'A Python Dictionary'
mydict[123] = 'I belong to the key 123 of type integer'
mydict[('fruits', 'vegetables')] = 'I belong to the key of type tuple'
mydict[None] = 'I belong to the key of None type'Let's print the dictionary mydict that has keys of different data types.
print(mydict)mydict that has keys of different data types in PythonThis will print the following dictionary as output.
{'name': 'A Python Dictionary', 123: 'I belong to the key 123 of type integer', ('fruits', 'vegetables'): 'I belong to the key of type tuple', None: 'I belong to the key of None type'}mydict that has keys of different data types in PythonDelete a key value pair from a Dictionary in Python
There are different ways to delete a key value pair from a dictionary. Following are the ways to delete key value pair from a dictionary.
- Using
popmethod available on the dictionary to delete key value from a Dictionary - Using
delto delete key value from a Dictionary
Using pop method
The following is the syntax to delete a key value pair from a dictionary in Python using pop method.
dict.pop(keytodelete)Let's delete the key 'name' from the dictionary mydict.
mydict.pop('name')Now, if we print the mydict using the command print(mydict), we will not see the key value pair that belongs to the key 'name'.
{123: 'I belong to the key 123 of type integer', ('fruits', 'vegetables'): 'I belong to the key of type tuple', None: 'I belong to the key of None type'}mydict that has keys of different data types in Python- The
popmethod will return the value of the key value pair that is deleted. - In case the key you are trying to pop is not found, it will raise
KeyError. - To prevent raising
KeyError, you can expect default return value by providing second argument topopmethod asmydict.pop('keydoesnotexists', None)
Using del keyword
The following is the syntax to delete a key value pair from a dictionary using del keyword in Python.
del dict[keytodelete]del keyword in PythonLet's delete the key 123 from the dictionary mydict.
del mydict[123]del keyword in PythonNow, if we print the mydict using the command print(mydict), we will not see the key value pair that belongs to the key 123.
{('fruits', 'vegetables'): 'I belong to the key of type tuple', None: 'I belong to the key of None type'}mydict that has keys of different data types in PythonDelete all items from a Dictionary in Python
To delete all the items from a dictionary in Python, you can use the clear method. Let's move ahead and delete all the key value pair in our mydict dictionary by calling clear method.
mydict.clear()clear method in PythonSummary
In this tutorial we learnt various properties of a Dictionary in Python. In addition to that, we also have learnt the following aspects with regards to Dictionary in Python.
- Learnt various ways to define a Dictionary in Python.
- Learnt how to add a Key Value pair to Dictionary in Python.
- Learnt how to access a Key Value pair from a Dictionary in Python.
- Learnt how to update a Key Value pair of a Dictionary in Python.
- Learnt how to display all the key value pair in the Dictionary in Python.
- Learnt how to adding keys of different types to a Dictionary in Python.
- Learnt how to delete a key value pair from a Dictionary in Python.
If you found this tutorial helpful, please do share it with your colleagues and friends.