In this tutorial you’ll learn how to implement hashmap in python using dictionary.
What is Hash Table or Hash Map?
In short, Hash table is a data structure which stores data in an associative manner. In this table, our data is stored in a array format, where each data value have a unique key to represent the data. So in this way, access of data becomes very fast if we know the key of the desired data. So in Hash Table, insertion and search operations are very fast irrespective of the size of the data.
How to Implement Hash Map in Python?
Well if you’re looking for implementation of hash map in python then the answer is Dictionary. Python Dictionary is a built-in type that supports key-value pairs. Basically Dictionary is like a list but instead of an integer index it can be of any type. Another thing to note that a dictionary is un-ordered, it may not show the items in the order it was defined. So in this article we’ll learn about dictionaries and all the operations that we can perform on a dictionary.
Python HashMap Implementation Using Dictionary
Creating a Dictionary
Let’s say we want to create a dictionary called phonebook where names will be used as keys and their phone numbers as values to the keys, then our code will be:
phonebook = { 'name 1' : '9100000000', 'name 2' : '9104043000', 'name 3' : '9100004000', }
Here phonebook is the name of the dictionary and name 1, name 2 and name 3 are unique keys and each key represent to a phone number (data). Here the keys and data both are in string format but we can use any other datatype like int.
Accessing Data from Dictionary
We can print all the entries by using for loop or we can print a specific value using its key. Let’s say we want access the phone number of name 1.
print(phonebook['name 1'])
Output:
9100004000
Or if you want to print all of the entries then the code will be.
for k,v in phonebook.items(): print(k + " - " + v)
Output:
name 3 – 9100004000
name 2 – 9104043000
name 1 – 9100000000
Here k and v are loop variables, where k is used for key and v is for their values.
Note: Dictionary can’t have duplicate entry. If more than one keys (having same name) are present in the dictionary then the last entry will be stored.
Add New Entry or Update Existing One Into Dictionary
phonebook['name 2'] = '0581234323' #updating existing entry phonebook['name 4'] = '0681234323' #creating a new entry for k,v in phonebook.items(): print(k+ " - " + v)
Output:
name 1 – 9100000000
name 4 – 0681234323
name 2 – 0581234323
name 3 – 9100004000
Here phonebook[key] = value can be used for both, to insert a new entry and also to update an existing entry. If the key is present in the dictionary then it will update the the value of that key with given value, if key doesn’t exist then It will add a new entry into the dictionary.
Deleting Entries from Dictionary
To delete a specific entry from the dictionary:
del phonebook['name 2'] #deleting a particular entry for k,v in phonebook.items(): print(k + " - " + v)
Output:
name 1 – 9100000000
name 3 – 9100004000
Here we’re deleting a particular entry from the dictionary phonebook using del statement.
Delete All Entries from Dictionary
phonebook.clear() #deleting all the elements print("phonebook = " + str(phonebook))
Output:
phonebook = {}
Here clear() method is used to clear all the entries in dictionary. The dictionary will be empty.
Delete Entire Dictionary
del phonebook #deleting entire dictionary print(phonebook)
Output:
NameError: name ‘phonebook’ is not defined
So del statement can be also used to delete the entire dictionary instead of a specific element.
Find Total Number of Entries in Dictionary
class_a = {1: 'Francis', 2: 'Mohan', 3: 'Steve'} total_items = len(class_a) #Counting number of elements print("No. of entries = " + str(total_items))
Output:
No. of entries = 3
Here class_a is a dictionary which have students roll numbers as keys and name as values. Now to count the number of entries, we’re using len() function here. Which will count the number of elements in the dictionary class_a and will return the number to the variable total_items.
There are several other methods used by dictionaries like:
Let’s say our dictionary name is dict.
- dict.copy() – returns a copy of dictionary dict.
- dict.keys() – returns a list of keys present in dict.
- dict.values() – returns a list of values present in dict.
- dict.items() – returns a list of tuple pairs (key values) present in dict.
- cmp(dict1, dict2) – compare both of the dictionaries and returns true, false. The function cmp() can be used only in Python 2.
for more information on dictionaries in Python please visit https://docs.python.org/3/tutorial/datastructures.html
Comment below if you’ve any problem or suggestion related to python hashmap implementation using dictionary.