Lesson 14
Dictionaries and Sets
Topics
• Dictionaries
Dictionaries
• Dictionary: object that stores a collection of data
– Each element consists of a key and a value
§ Often referred to as mapping of key to value
§ Key must be an immutable object
– To retrieve a specific value, use the key associated
with it
– Format for creating a dictionary
dictionary =
{key1:val1, key2:val2}
Retrieving a Value from a Dictionary
• Elements in dictionary are unsorted
• General format for retrieving value from dictionary:
dictionary[key]
– If key in the dictionary, associated value is returned,
otherwise, KeyError exception is raised
• Test whether a key is in a dictionary using the in and
not in operators
– Helps prevent KeyError exceptions
Adding Elements to an Existing
Dictionary
• Dictionaries are mutable objects
• To add a new key-value pair:
dictionary[key] = value
– If key exists in the dictionary, the value associated with
it will be changed
Deleting Elements From an Existing
Dictionary
• To delete a key-value pair:
del dictionary[key]
– If key is not in the dictionary, KeyError exception is
raised
Getting the Number of Elements and
Mixing Data Types
• len function: used to obtain number of elements in a
dictionary
• Keys must be immutable objects, but associated
values can be any type of object
– One dictionary can include keys of several different
immutable types
• Values stored in a single dictionary can be of different
types
Creating an Empty Dictionary and Using
for Loop to Iterate Over a Dictionary
• To create an empty dictionary:
– Use {}
– Use built-in function dict()
– Elements can be added to the dictionary as program
executes
• Use a for loop to iterate over a dictionary
– General format: for key in dictionary:
Some Dictionary Methods (1 of 5)
• clear method: deletes all the elements in a
dictionary, leaving it empty
– Format: dictionary.clear()
• get method: gets a value associated with specified
key from the dictionary
– Format: dictionary.get(key, default)
§ default is returned if key is not found
– Alternative to [] operator
§ Cannot raise KeyError exception
Some Dictionary Methods (2 of 5)
• items method: returns all the dictionaries keys and
associated values
– Format: dictionary.items()
– Returned as a dictionary view
§ Each element in dictionary view is a tuple which contains
a key and its associated value
§ Use a for loop to iterate over the tuples in the sequence
– Can use a variable which receives a tuple, or can use two
variables which receive key and value
Some Dictionary Methods (3 of 5)
• keys method: returns all the dictionaries keys as a
sequence
– Format: dictionary.keys()
• pop method: returns value associated with specified
key and removes that key-value pair from the
dictionary
– Format: dictionary.pop(key, default)
§ default is returned if key is not found
Some Dictionary Methods (4 of 5)
• popitem method: Returns, as a tuple, the key-value
pair that was last added to the dictionary. The method
also removes the key-value pair from the dictionary.
– Format: dictionary.popitem()
– Key-value pair returned as a tuple
• values method: returns all the dictionaries values as
a sequence
– Format: dictionary.values()
– Use a for loop to iterate over the values
Some Dictionary Methods (5 of 5)
Some of the dictionary methods
Method Description
Clear Clears the contents of a dictionary.
get Gets the value associated with a specified key. If the key is not found, the method
does not raise an exception. Instead, it returns a default value.
items Returns all the keys in a dictionary and their associated values as a sequence of
tuples.
keys Returns all the keys in a dictionary as a sequence of tuples.
pop Returns the value associated with a specified key and removes that key-value pair
from the dictionary. If the key is not found, the method returns a default value.
popitem Returns, as a tuple, the key-value pair that was last added to the dictionary. The
method also removes the key-value pair from the dictionary.
values Returns all the values in the dictionary as a sequence of tuples.
Dictionary Comprehensions (1 of 6)
• Dictionary comprehension: an expression that reads a
sequence of input elements and uses those input
elements to produce a dictionary
Dictionary Comprehensions (2 of 6)
• Example: create a dictionary in which the keys are the
integers 1 through 4 and the values are the squares of the
keys >>> numbers = [1, 2, 3, 4]
Using a for loop >>> squares = {}
>>> for item in numbers:
... squares[item] = item**2
...
>>> squares
{1: 1, 2: 4, 3: 9, 4: 16}
>>>
Using a >>> squares = {item:item**2 for item in
dictionary numbers}
comprehension
>>> squares
{1: 1, 2: 4, 3: 9, 4: 16}
>>>
Dictionary Comprehensions (3 of 6)
squares = {item:item**2 for item in numbers}
Result Expression Iteration Expression
• The iteration expression iterates over the elements
of numbers
• Each time it iterates, the target variable item is
assigned the value of an element
• At the end of each iteration, an element containing
item as the key and item**2 as the value is added to
the new dictionary
Dictionary Comprehensions (4 of 6)
• Example: You have an existing list of strings. Create a
dictionary in which the keys are the stings in the list,
and the values are the lengths of the strings
>>> names = ['Jeremy', 'Kate', 'Peg']
>>> str_lengths = {item:len(item) for item in names}
>>> str_lengths
{'Jeremy': 6, 'Kate': 4, 'Peg': 3}
>>>
Dictionary Comprehensions (5 of 6)
• Example: making a copy of a dictionary
>>> dict1 = {'A':1, 'B':2, 'C':3}
>>> dict2 = {k:v for k,v in dict1.items()}
>>> dict2
{'A': 1, 'B': 2, 'C': 3}
>>>
Dictionary Comprehensions (6 of 6)
• You can use an if clause in a dictionary
comprehension to select only certain elements of the
input sequence
– Example: A dictionary contains cities and their populations
as key-value pairs. Select only the cities with a population
greater than 2 million
>>> populations = {'New York': 8398748, 'Los Angeles': 3990456,
... 'Chicago': 2705994, 'Houston': 2325502,
... 'Phoenix': 1660272, 'Philadelphia': 1584138}
>>> largest = {k:v for k,v in populations.items() if v > 2000000}
>>> largest
{'New York': 8398748, 'Los Angeles': 3990456, 'Chicago': 2705994,
'Houston': 2325502}
>>>
Summary
• This lesson covered:
– Dictionaries, including:
§ Creating dictionaries
§ Inserting, retrieving, adding, and deleting key-value pairs
§ for loops and in and not in operators
§ Dictionary methods