Python Dictionary and Dictionary Manipulation Video
Before starting, I should mention that the code in this blog post and in the video above is available on my github.
Dictionaries are written within curly brackets {}.
Define a dictionary. Keys are in red. Values are in blue.
# Define a dictionary codewebstersDict = {'person': 'a human being','marathon': 'a running race that is about 26 miles','resist': 'to remain strong against the force','run': 'to move with haste; act quickly'}
Dictionaries are unordered data structures that map unique keys to values. The dictionary webstersDict used strings as keys in the dictionary, but dictionary keys can be any immutable data type (numbers, strings, tuples etc). Dictionary values can be just about anything (int, lists, functions, strings, etc).
For example, the dictionary below, genderDict has ints as keys and strings as values.
# Define a dictionarygenderDict = {0: 'male',1: 'female'}
An important point to emphasize is that if you try to make a key a mutable datatype (like a list), you will get an error.
# Failure to define a dictionarywebstersDict = {(1, 2.0): 'tuples can be keys',1: 'ints can be keys','run': 'strings can be keys',['sock', 1, 2.0]: 'lists can NOT be keys'}
Failure to define a dictionary with a list as a key. Lists are NOT immutable
To access a dictionary value, use square brackets [].
For example, the code below uses the key ‘marathon’ to access the value ‘a running race that is about 26 miles’.
# Get value of the 'marathon' keywebstersDict['marathon']
Access the key ‘marathon’
Keep in mind that you will get a KeyError if you try to access a value for a key that does not exist.
# Try to get value for key that does not existwebstersDict['nonexistentKey']
KeyError will result if you try and look up a key that does not exist.
In the Dictionary Methods section, you will see the utility of using the dictionary method get to avoid KeyErrors.
You can add a new key-value pair.
# add one new key value pair to a dictionarywebstersDict['shoe'] = 'an external covering for the human foot'
Add the new key ‘shoe’ to the dictionary. The new key ‘shoe’ is enclosed in the red rectangle.
You can also update a key-value pair.
Update the dictionary key ‘marathon’
You can also add or update multiple key value pairs at a time using the dictionary update method as we will see later on**.**
It is possible to remove a key and its corresponding value from a dictionary using del.
# Remove the key 'resist' from the dictionarydel webstersDict['resist']
Remove the key ‘resist' from the dictionary webstersDict.
Python dictionaries have different methods that help you modify a dictionary. This section of the tutorial just goes over various python dictionary methods.
The update method is very useful for updating multiple key values pairs at a time. It takes a dictionary as an argument.
# Using update method to add two key value pairs at oncewebstersDict.update({'ran': 'past tense of run','shoes': 'plural of shoe'})
Added the keys ‘ran’ and ‘shoes’ to the dictionary.
If you are wondering why the keys added to the dictionary are not in the order added in, it is because dictionaries are unordered.
# Define a dictionarystoryCount = {'is': 100,'the': 90,'Michael': 12,'runs': 5}
The get method returns a value for a given key. If a key doesn’t exist, the dictionary will by default return None.
# Since the key 'Michael' exists, it will return the value 12storyCount.get('Michael')
Since the key ‘Michael’ exists, it returns the value 12. If ‘Michael’ didn’t exist, it would return None.
The method is very useful to look up keys you don’t know are in the dictionary to avoid KeyErrors.
They key ‘chicken’ does not exist.
You can also specify a default value to return if the key doesn’t exist.
# Make default value for key that doesn't exist 0.storyCount.get('chicken', 0)
You can see the usefulness of this method if you try a Python Word Count.
The pop method removes a key and returns the value.
storyCount.pop('the')
Dictionary before and after removing the key ’the’ from the dictionary.
The keys method returns the keys of the dictionary as a list
storyCount.keys()
Return the keys of the dictionary as a list
The values method returns the values in the dictionary as a list
storyCount.values()
The items method returns a list of tuples where each tuple is of the form (key, value).
webstersDict.items()
The items method returns a list of tuples in the form of (key, value).
You can iterate through the keys of a dictionary by using a for loop.
for key in storyCount:print(key)
Iterate through the keys of the dictionary.
You also iterate through the keys of a dictionary by using the keys method.
for key in storyCount.keys():print(key)
Iterate through the keys of the dictionary.
The for loop below uses the items method to access one (key, value) pair on each iteration of the loop.
for key, value in webstersDict.items():print(key, value)
Iterate through the key, value pairs of a dictionary.
If you have difficulty understanding this section, I recommend watching this section of the .
Please let me know if you have any questions either here or in the comments section of the youtube video! The next post, Python Word Count will review dictionary methods, list manipulations, and string manipulations.