Python Dictionary Interview Questions – Data Analytics Ireland


Estimated reading time: 6 minutes

In our first video on python interview questions we discussed some of the high-level questions you may be asked in an interview.

In this post, we will discuss interview questions about python dictionaries.

So what are Python dictionaries and their properties?

First of all, they are mutable, meaning they can be changed, please read on to see examples.

As a result, you can add or take away key-value pairs as you see fit.

Also, key names can be changed.

One of the other properties that should be noted is that they are case-sensitive, meaning the same key name can exist if it is in different caps.

As can be seen below, the process is straightforward, you just declare a variable equal to two curly brackets, and hey presto you are up and running.

An alternative is to declare a variable equal to dict(), and in an instance, you have an empty dictionary.

The below block of code should be a good example of how to do this:

# How do you create an empty dictionary?
empty_dict1 = {}
empty_dict2 = dict()
print(empty_dict1)
print(empty_dict2)
print(type(empty_dict1))
print(type(empty_dict2))

Output:
{}
{}
<class 'dict'>
<class 'dict'>

If you want to add values to your Python dictionary, there are several ways possible, the below code, can help you get a better idea:

#How do add values to a python dictionary
empty_dict1 = {}
empty_dict2 = dict()

empty_dict1['Key1'] = '1'
empty_dict1['Key2'] = '2'
print(empty_dict1)

#Example1 - #Appending values to a python dictionary
empty_dict1.update({'key3': '3'})
print(empty_dict1)

#Example2 - Use an if statement
if "key4" not in empty_dict1:
    empty_dict1["key4"] = '4'
else:
    print("Key exists, so not added")
print(empty_dict1)

Output:
{'Key1': '1', 'Key2': '2'}
{'Key1': '1', 'Key2': '2', 'key3': '3'}
{'Key1': '1', 'Key2': '2', 'key3': '3', 'key4': '4'}

One of the properties of dictionaries is that they are unordered, as a result, if it is large finding what you need may take a bit.

Luckily Python has provided the ability to sort as follows:

#How to sort a python dictionary?
empty_dict1 = {}

empty_dict1['Key2'] = '2'
empty_dict1['Key1'] = '1'
empty_dict1['Key3'] = '3'
print("Your unsorted by key dictionary is:",empty_dict1)
print("Your sorted by key dictionary is:",dict(sorted(empty_dict1.items())))

#OR - use list comprehension
d = {a:b for a, b in enumerate(empty_dict1.values())}
print(d)
d["Key2"] = d.pop(0) #replaces 0 with Key2
d["Key1"] = d.pop(1) #replaces 1 with Key1
d["Key3"] = d.pop(2) #replaces 2 with Key3
print(d)
print(dict(sorted(d.items())))

Output:
Your unsorted by key dictionary is: {'Key2': '2', 'Key1': '1', 'Key3': '3'}
Your sorted by key dictionary is: {'Key1': '1', 'Key2': '2', 'Key3': '3'}
{0: '2', 1: '1', 2: '3'}
{'Key2': '2', 'Key1': '1', 'Key3': '3'}
{'Key1': '1', 'Key2': '2', 'Key3': '3'}

How do you delete a key from a Python dictionary?

From time to time certain keys may not be required anymore. In this scenario, you will need to delete them. In doing this you also delete the value associated with the key.

#How do you delete a key from a dictionary?
empty_dict1 = {}

empty_dict1['Key2'] = '2'
empty_dict1['Key1'] = '1'
empty_dict1['Key3'] = '3'
print(empty_dict1)

#1. Use the pop function
empty_dict1.pop('Key1')
print(empty_dict1)

#2. Use Del

del empty_dict1["Key2"]
print(empty_dict1)

#3. Use dict.clear()
empty_dict1.clear() # Removes everything from the dictionary.
print(empty_dict1)

Output:
{'Key2': '2', 'Key1': '1', 'Key3': '3'}
{'Key2': '2', 'Key3': '3'}
{'Key3': '3'}
{}

How do you delete more than one key from a Python dictionary?

Sometimes you may need to remove multiple keys and their values. Using the above code repeatedly may not be the most efficient way to achieve this.

To help with this Python has provided a number of ways to achieve this as follows:

#How do you delete more than one key from a dictionary
#1. Create a list to lookup against
empty_dict1 = {}

empty_dict1['Key2'] = '2'
empty_dict1['Key1'] = '1'
empty_dict1['Key3'] = '3'
empty_dict1['Key4'] = '4'
empty_dict1['Key5'] = '5'
empty_dict1['Key6'] = '6'

print(empty_dict1)

dictionary_remove = ["Key5","Key6"] # Lookup list

#1. Use the pop method

for key in dictionary_remove:
  empty_dict1.pop(key)
print(empty_dict1)

#2 Use the del method
dictionary_remove = ["Key3","Key4"]
for key in dictionary_remove:
  del empty_dict1[key]
print(empty_dict1)

How do you change the name of a key in a Python dictionary?

There are going to be scenarios where the key names are not the right names you need, as a result, they will need to be changed.

It should be noted that when changing the key names, the new name should not already exist.

Below are some examples that will show you the different ways this can be acheived.

# How do you change the name of a key in a dictionary
#1. Create a new key , remove the old key, but keep the old key value

# create a dictionary
European_countries = {
    "Ireland": "Dublin",
    "France": "Paris",
    "UK": "London"
}
print(European_countries)
#1. rename key in dictionary
European_countries["United Kingdom"] = European_countries.pop("UK")
# display the dictionary
print(European_countries)

#2. Use zip to change the values

European_countries = {
    "Ireland": "Dublin",
    "France": "Paris",
    "United Kingdom": "London"
}

update_elements=['IRE','FR','UK']

new_dict=dict(zip(update_elements,list(European_countries.values())))

print(new_dict)

Output:
{'Ireland': 'Dublin', 'France': 'Paris', 'UK': 'London'}
{'Ireland': 'Dublin', 'France': 'Paris', 'United Kingdom': 'London'}
{'IRE': 'Dublin', 'FR': 'Paris', 'UK': 'London'}

How do you get the min and max key and values in a Python dictionary?

Finally, you may have a large dictionary and need to see the boundaries and or limits of the values contained within it.

In the below code, some examples of what you can talk through should help explain your knowledge.

#How do you get the min and max keys and values in a dictionary?
dict_values = {"First": 1,"Second": 2,"Third": 3}

#1. Get the minimum value and its associated key
minimum = min(dict_values.values())
print("The minimum value is:",minimum)
minimum_key = min(dict_values.items())
print(minimum_key)

#2. Get the maximum value and its associated key
maximum = max(dict_values.values())
print("The maximum value is:",maximum)
maximum_key = max(dict_values.items())
print(maximum_key)

#3. Get the min and the max key
minimum = min(dict_values.keys())
print("The minimum key is:",minimum)

#2. Get the maximum value and its associated key
maximum = max(dict_values.keys())
print("The maximum key is:",maximum)

Output:
The minimum value is: 1
('First', 1)
The maximum value is: 3
('Third', 3)
The minimum key is: First
The maximum key is: Third

How to sort a Python Dictionary


Estimated reading time: 3 minutes

In our Python Overview Interview Questions we started off the process of trying to prepare you how to answer any questions that may come up in an interview scenario.

We then moved on to show how to discuss Python Dictionary Interview Questions and what may come up.

One of the questions that you may be asked is how to deal with sorting a python dictionary using a key.

Some of the ways that you may want to sort are as follows, read on for code examples:

Python Dictionary Interview Questions

How to use the sorted and Items Method in Python

In the below code, we have created an empty dictionary and then appened in three key-value pairs.

The first print statement just prints out the dictionary in its unordered fashion.

The second print statement does two things:

  1. It, first of all, sorts the empty_dict1 items in order
  2. Then it goes and creates them in a dictionary.

The reason we have to do step two is that the sorted() function returns a sorted list, as a result, it is not in a dictionary format.

empty_dict1 = {}

empty_dict1['Key2'] = '2'
empty_dict1['Key1'] = '1'
empty_dict1['Key3'] = '3'
print("Your unsorted by key dictionary is:",empty_dict1)
print("Your sorted by key dictionary is:",dict(sorted(empty_dict1.items())))

Result:
Your unsorted by key dictionary is: {'Key2': '2', 'Key1': '1', 'Key3': '3'}
Your sorted by key dictionary is: {'Key1': '1', 'Key2': '2', 'Key3': '3'}

As a follow on to the above, we could also just iterate over the dictionary using list comprehensions.

The below creates a variable called d. This is set equal to the output of the list comprehension.

Note that inside the {} brackets you have a:b, this purely creates two sets of values that will be used as the output to generate the dictionary.

You will also see that this creates index values, starting at 0, not the actual values we want.

As a result, we just drop these index values and replace them with the values we want using the pop() method.

The final two print statements show the before and after of sorting the dictionary!

d = {a:b for a, b in enumerate(empty_dict1.values())}
print(d)
d["Key2"] = d.pop(0) #replaces 0 with Key2
d["Key1"] = d.pop(1) #replaces 1 with Key1
d["Key3"] = d.pop(2) #replaces 2 with Key3
print(d)
print(dict(sorted(d.items())))

Result:
{0: '2', 1: '1', 2: '3'}
{'Key2': '2', 'Key1': '1', 'Key3': '3'}
{'Key1': '1', 'Key2': '2', 'Key3': '3'}

How to use a loop to sort a Python dictionary

d={0:2, 1: 1, 2: 3}
dict_loop={}
for i in sorted(d):
   dict_loop[i]=d[i]
print("")
print("Sorted dictionary using a loop",dict_loop)

How to delete a key from a Python dictionary


Estimated reading time: 2 minutes

This is an addition to the list of questions you may get when in an interview and you are asked to give an overview of Python.

As with how to create an empty dictionary in Python, how to add values to a python dictionary, and how to sort a python dictionary we will take you through the steps here of how to delete a key from a python dictionary.

How to delete a key from a Python dictionary.

How to use the pop() method to delete a key from a dictionary

In the below example we tell Python to find the key “Key1”, then when it does it prints the python dictionary without that key or its value.

empty_dict1 = {}

empty_dict1['Key2'] = '2'
empty_dict1['Key1'] = '1'
empty_dict1['Key3'] = '3'
print(empty_dict1)

#1. Use the pop function
empty_dict1.pop('Key1')
print(empty_dict1)

Result:
{'Key2': '2', 'Key3': '3'}

How to use the Del keyword to delete a key from a dictionary

In this example, we are taking the output of the above example, and just telling the logic to remove the key “Key2” then what it does is it prints the python dictionary without that key or its value.

del empty_dict1["Key2"]
print(empty_dict1)

Result:
{'Key3': '3'}

How to use dict.clear() to delete a key from a dictionary

In this final example, we use dict.clear(). Note this will empty everything out of the dictionary, so be careful in its use.

As can be seen, it takes the output of the previous example and empties it completely.

empty_dict1.clear() # Removes everything from the dictionary.
print(empty_dict1)

Result:
{}