Python Dictionaries
Learn about dictionaries in Python - ordered collections of key-value pairs.
Dictionaries
Dictionaries are used to store data values in key:value pairs.
A dictionary is a collection which is ordered*, changeable and do not allow duplicates.
Dictionaries are written with curly brackets, and have keys and values:
Example
thisdict = {
"brand": "Ford",
"model": "Mustang",
"year": 1964
}
print(thisdict) Dictionary Items
Dictionary items are ordered, changeable, and does not allow duplicates.
Dictionary items are presented in key:value pairs, and can be referred to by using the key name.
Example
thisdict = {
"brand": "Ford",
"model": "Mustang",
"year": 1964
}
print(thisdict["brand"]) Ordered or Unordered?
As of Python version 3.7, dictionaries are ordered. In Python 3.6 and earlier, dictionaries are unordered.
When we say that dictionaries are ordered, it means that the items have a defined order, and that order will not change.
Unordered means that the items does not have a defined order, you cannot refer to an item by using an index.
Changeable
Dictionaries are changeable, meaning that we can change, add or remove items after the dictionary has been created.
Duplicates Not Allowed
Dictionaries cannot have two items with the same key:
Example
thisdict = {
"brand": "Ford",
"model": "Mustang",
"year": 1964,
"year": 2020
}
print(thisdict) Dictionary Length
To determine how many items a dictionary has, use the len() function:
Example
print(len(thisdict)) Dictionary Items - Data Types
The values in dictionary items can be of any data type:
Example
thisdict = {
"brand": "Ford",
"electric": False,
"year": 1964,
"colors": ["red", "white", "blue"]
} type()
From Python's perspective, dictionaries are defined as objects with the data type 'dict':
Example
thisdict = {
"brand": "Ford",
"model": "Mustang",
"year": 1964
}
print(type(thisdict)) Accessing Items
You can access the items of a dictionary by referring to its key name, inside square brackets:
Example
thisdict = {
"brand": "Ford",
"model": "Mustang",
"year": 1964
}
x = thisdict["model"] There is also a method called get() that will give you the same result:
Example
x = thisdict.get("model") Get Keys
The keys() method will return a list of all the keys in the dictionary.
Example
x = thisdict.keys() Get Values
The values() method will return a list of all the values in the dictionary.
Example
x = thisdict.values() Get Items
The items() method will return each item in a dictionary, as tuples in a list.
Example
x = thisdict.items() Check if Key Exists
To determine if a specified key is present in a dictionary use the in keyword:
Example
thisdict = {
"brand": "Ford",
"model": "Mustang",
"year": 1964
}
if "model" in thisdict:
print("Yes, 'model' is one of the keys in the thisdict dictionary") Change Values
You can change the value of a specific item by referring to its key name:
Example
thisdict = {
"brand": "Ford",
"model": "Mustang",
"year": 1964
}
thisdict["year"] = 2018 Update Dictionary
The update() method will update the dictionary with the items from the given argument.
The argument must be a dictionary, or an iterable object with key:value pairs.
Example
thisdict = {
"brand": "Ford",
"model": "Mustang",
"year": 1964
}
thisdict.update({"year": 2020}) Adding Items
Adding an item to the dictionary is done by using a new index key and assigning a value to it:
Example
thisdict = {
"brand": "Ford",
"model": "Mustang",
"year": 1964
}
thisdict["color"] = "red"
print(thisdict) Update Dictionary
The update() method will update the dictionary with the items from a given argument. If the item does not exist, the item will be added.
Example
thisdict = {
"brand": "Ford",
"model": "Mustang",
"year": 1964
}
thisdict.update({"color": "red"}) Removing Items
There are several methods to remove items from a dictionary:
The pop() method
The pop() method removes the item with the specified key name:
Example
thisdict = {
"brand": "Ford",
"model": "Mustang",
"year": 1964
}
thisdict.pop("model")
print(thisdict) The popitem() method
The popitem() method removes the last inserted item (in versions before 3.7, a random item is removed instead):
Example
thisdict = {
"brand": "Ford",
"model": "Mustang",
"year": 1964
}
thisdict.popitem()
print(thisdict) The del keyword
The del keyword removes the item with the specified key name:
Example
thisdict = {
"brand": "Ford",
"model": "Mustang",
"year": 1964
}
del thisdict["model"]
print(thisdict) The del keyword can also delete the dictionary completely:
Example
thisdict = {
"brand": "Ford",
"model": "Mustang",
"year": 1964
}
del thisdict
print(thisdict) #this will cause an error because "thisdict" no longer exists. The clear() method
The clear() method empties the dictionary:
Example
thisdict = {
"brand": "Ford",
"model": "Mustang",
"year": 1964
}
thisdict.clear()
print(thisdict) Loop Through a Dictionary
You can loop through a dictionary by using a for loop.
When looping through a dictionary, the return value are the keys of the dictionary, but there are methods to return the values as well.
Example - Print all key names in the dictionary, one by one:
for x in thisdict:
print(x) Example - Print all values in the dictionary, one by one:
for x in thisdict:
print(thisdict[x]) Example - You can also use the values() method to return values of a dictionary:
for x in thisdict.values():
print(x) Example - You can use the keys() method to return the keys of a dictionary:
for x in thisdict.keys():
print(x) Example - Loop through both keys and values, by using the items() method:
for x, y in thisdict.items():
print(x, y)