What is Dictionary?

We have said that there are mutable (modifiable) data types that contain different data types such as Tuple and List data types in dictionaries and are shown with curly braces.

Dictionaries are a little different because Dictionaries consist of two parts; keys and values, value part can contain all data type but keys part can only be of string and int type.

How to Use Dictionaries?

Before I show its usage, Lets explain why dictionary; Imagine that you are making an English dictionary, how would it be without a database. You have to write an if condition for each word. Each word is a conditional cycle, which makes the program tiring. Let me show you with an example;

"""Romanian Dictionary Application"""
word = input("Enter the english word: ")

if word == "Computer":
    print("Calculator")
elif word == "School":
    print("Şcoală")
elif word == "Memory":
    print("Memorie")
elif word == "House":
    print("Casa")
elif word == "Bus":
    print("Autobuz")
elif word == "Car":
    print("Mașină")

You will probably have written code like this.

Let’s write the same application with Dictionaries.

"""Romanian Dictionary Application"""
word = input("Enter the english word: ")
 
dictionary = {"Computer":"Calculator","School":"Şcoală","Memory":"Memorie",
"House":"Casa","Bus":"Autobuz","Car":"Mașină"}

In this way, you will have written more neat and readable code, and since Dictionaries are mutable (modifiable) data types, they can be easily added, deleted, changed, etc. we can do the work.

Accessing Dictionary Items

Dictionaries are based on key=value relationships, and every value has a key value. Then we can reach the value with the key we know. Let’s give an example right away;

dictionary = {"Computer":"Calculator","School":"Şcoală","Memory":"Memorie",
"House":"Casa","Bus":"Autobuz","Car":"Mașină"}

print(dictionary["Computer"])

# Calculator

Dictionary Methods

Let’s list the dictionary methods immediately;

['__class__', '__contains__', '__delattr__', '__delitem__', '__dir__',
 '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__',
 '__getitem__', '__gt__', '__hash__', '__init__', '__iter__', '__le__',
 '__len__', '__lt__', '__ne__', '__new__', '__reduce__', '__reduce_ex__',
 '__repr__', '__setattr__', '__setitem__', '__sizeof__', '__str__',
 '__subclasshook__', 'clear', 'copy', 'fromkeys', 'get', 'items', 'keys',
 'pop', 'popitem', 'setdefault', 'update', 'values']

If we omit __X__ private methods

['clear', 'copy', 'fromkeys', 'get', 'items', 'keys', 'pop', 'popitem', 'setdefault', 'update', 'values']

We will cover their methods.

keys Method

At the beginning of the lesson, while defining Dictionaries, we said that Dictionaries consist of key and value. Here, this method gives all the keywords in the dictionary, let me show you with an example;

dictionary = {"Computer":"Calculator","School":"Şcoală","Memory":"Memorie",
"House":"Casa","Bus":"Autobuz","Car":"Mașină"}

print(dictionary.keys())

dict_keys(['Computer', 'School', 'Memory', 'House', 'Bus', 'Car'])

values Method

This method also returns all values in a dictionary.

dictionary = {"Computer":"Calculator","School":"Şcoală","Memory":"Memorie",
"House":"Casa","Bus":"Autobuz","Car":"Mașină"}
 
print(dictionary.values())
 
dict_values(['Calculator', 'Şcoală', 'Memorie', 'Casa', 'Autobuz', 'Mașină'])

items Method

This method returns both keys and values.

dictionary = {"Computer":"Calculator","School":"Şcoală","Memory":"Memorie",
"House":"Casa","Bus":"Autobuz","Car":"Mașină"}
 
print(dictionary.items())
 
dict_items([('Computer', 'Calculator'), ('School', 'Şcoală'), ('Memory', 'Memorie'), ('House', 'Casa'), ('Bus', 'Autobuz'), ('Car', 'Mașină')])

get Method

Before explaining this method, let’s make an application;

word = input("Enter a word: ")
dictionary = {"Computer":"Calculator","School":"Şcoală","Memory":"Memorie",
"House":"Casa","Bus":"Autobuz","Car":"Mașină"}
 
if word in dictionary:
    print(dictionary[word])
else:
    print("The word you are looking for is not found in the dictionary.")
 
# Enter a word: Computer
# Calculator
 
# Enter a word: whoami
# The word you are looking for is not found in the dictionary.

Here, the word we are looking for gives a word if it exists, if not, we wrote a program that gives us a text.

Here’s the get method that allows us to do the same function without writing the if condition loop.

word = input("Enter a word: ")
dictionary = {"Computer":"Calculator","School":"Şcoală","Memory":"Memorie",
"House":"Casa","Bus":"Autobuz","Car":"Mașină"}

print(dictionary.get(word, "The word you are looking for is not found in the dictionary."))
 
# Enter a word: Bus
# Autobuz

# Enter a word: Driver
# The word you are looking for is not found in the dictionary.

copy Method

This method allows us to copy a Dictionary.

dictionary = {"Computer":"Calculator","School":"Şcoală","Memory":"Memorie",
"House":"Casa","Bus":"Autobuz","Car":"Mașină"}
 
dictionary2 = dictionary.copy()
print(dictionary2)

# {"Computer":"Calculator","School":"Şcoală","Memory":"Memorie","House":"Casa","Bus":"Autobuz","Car":"Mașină"}

clear Method

As the name suggests, this method performs the cleaning function, but there is one thing you need to be careful about, this deletes the inside of the dictionary.

dictionary = {"Computer":"Calculator","School":"Şcoală","Memory":"Memorie",
"House":"Casa","Bus":"Autobuz","Car":"Mașină"}
 
dictionary.clear()
print(dictionary)

# {}

Well, if you are asking how to delete the dictionary completely, let me show you right away;

del dictionary

We can also delete an item in the dictionary this way;

dictionary = {"Computer":"Calculator","School":"Şcoală","Memory":"Memorie",
"House":"Casa","Bus":"Autobuz","Car":"Mașină"}
 
del dictionary["Computer"]

In this way, we have deleted the “Computer” item.

pop Method

This method is deleting a single item with a keyword. It also prints the key value of the deleted item to the screen.

dictionary = {"Computer":"Calculator","School":"Şcoală","Memory":"Memorie",
"House":"Casa","Bus":"Autobuz","Car":"Mașină"}
 
dictionary.pop("School")

In this way, we have deleted the “School” item.

popitem Method

This method does the same as the pop method, but this method takes no parameters and deletes a random item.

dictionary = {"Computer":"Calculator","School":"Şcoală","Memory":"Memorie",
"House":"Casa","Bus":"Autobuz","Car":"Mașină"}

dictionary.popitem()

setdefault Method

This method is the same as the get method. If there is no key, you can print it by giving a value to that key.

If the searched word is found;

numbers = {"1":"one","2":"two","3":"three","4":"four","5":"five"}

print(numbers.setdefault("4"),)

# four

If the searched key does not exist;

print(numbers.setdefault("8","eight"),)
 
# eight

update Method

This method is used to update the Dictionary. Let me show you its usage with an example;

Let’s say we have a list of students and these students have grades;

list_1 = {"Baransel":70,"Alex":50,"Josh":60,"Batu":75}

We want to add 10 points to the grades, so the new version will be as follows;

list_2 = {"Baransel":80,"Alex":60,"Josh":70,"Batu":85}

If we want it to be like the second list, the action we will do is;

list_1.update(list_2)
print(list_1)
 
# {"Baransel":80,"Alex":60,"Josh":70,"Batu":85}