paint-brush
Python Dictionary and Dictionary Methodsby@GalarnykMichael
72,311 reads
72,311 reads

Python Dictionary and Dictionary Methods

by Michael GalarnykJune 23rd, 2017
Read on Terminal Reader
Read this story w/o Javascript
tldt arrow

Too Long; Didn't Read

Before starting, I should mention that the code in this blog post and in the <a href="https://www.youtube.com/watch?v=LlIqrWJaBcQ" target="_blank">video</a> above is available on my <a href="https://github.com/mGalarnyk/Python_Tutorials/blob/master/Python_Basics/Intro/PythonBasicsDictionaries.ipynb" target="_blank">github</a>.

Company Mentioned

Mention Thumbnail
featured image - Python Dictionary and Dictionary Methods
Michael Galarnyk HackerNoon profile picture

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.

Define a Dictionary

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

Access Values in a Dictionary

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.

Add or Update Key

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**.**

Delete Key from Dictionary

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.

Dictionary Methods

Python dictionaries have different methods that help you modify a dictionary. This section of the tutorial just goes over various python dictionary methods.

update method

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.

get method





# 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.

pop Method

The pop method removes a key and returns the value.

storyCount.pop('the')

Dictionary before and after removing the key ’the’ from the dictionary.

keys Method

The keys method returns the keys of the dictionary as a list

storyCount.keys()

Return the keys of the dictionary as a list

values Method

The values method returns the values in the dictionary as a list

storyCount.values()

items Method

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).

Iterate through a Dictionary

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 .

Closing Remarks

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.