CSE 160
Dictionaries
Hannah Cheung
Announcements
2
Example: Staff Favorite Colors
[“purple”, “blue”, “red”]
3
Dictionaries
�
4
7 ⟶ 49
6 ⟶ 36
5 ⟶ 25
5 ⟶ 25
6 ⟶ 36
7 ⟶ 49
Dictionaries
�
5
49 ⟶ 7
49 ⟶ -7
7 ⟶ 49
-7 ⟶ 49
Dictionaries
6
1783 ⟶ “Revolutionary”
1848 ⟶ “Mexican”
1865 ⟶ “Civil”
Dictionaries
�
7
“Revolutionary” ⟶ [1775, 1783]
“Mexican” ⟶ [1846, 1848]
“Civil” ⟶ [1861, 1865]
“Revolutionary” ⟶ [1775, 1783]
“Mexican” ⟶ [1846, 1848]
“Civil” ⟶ [1861, 1865]
“WWI” ⟶ [1917, 1918]
Dictionary Syntax
8
d = {}
d = dict()
us_wars_by_end = {
1783: “Revolutionary”,
1848: “Mexican”,
1865: “Civil” }
us_wars_by_name = {
“Civil”: [1861, 1865],
“Mexican”: [1846, 1848],
“Revolutionary”: [1775, 1783] }
us_wars_by_end[1783] # accessing value from keys
us_wars_by_end[1783][1:10]
# setting key-value pair
us_wars_by_name[“WWI”] = [1917, 1918]
Creating a Dictionary
9
state_capitals = {
“GA”: “Atlanta”,
“WA”: “Olympia” }
phonebook = dict()
phonebook[“Alice”] = “206-555-4455”
phonebook[“Bob”] = “212-555-2211”
atomic_number = {}
atomic_number[“H”] = 1
atomic_number[“Fe”] = 26
atomic_number[“Au”] 79
Accessing a Dictionary
10
atomic_number = {“H”: 1, “Fe”: 26, “Au”: 79}
atomic_number[“Au”] # 79
atomic_number[“B”] # KeyError
“Au” in atomic_number # True
list(atomic_number.keys()) # [‘H’, ‘Au’, ‘Fe’]
list(atomic_number.values()) # [1, 79, 26]
# [(‘H’, 1), (‘Au’, 79), (‘Fe’, 26)]
list(atomic.number.items())
Iterating through a Dictionary
11
atomic_number = {“H”: 1, “Fe”: 26, “Au”: 79}
# print out all keys
for element_name in atomic_number.keys():
print(element_name)
# print out all values
for element_number in atomic_number.values():
print(element_number)
# print out all keys and values
for element_name, element_number in atomic_number.items():
print(element_name, element_number)
Modifying a Dictionary
12
us_wars = {
“Revolutionary”: [1775, 1783],
“Mexican”: [1846, 1848],
“Civil”: [1861, 1865 }
us_wars[“WWI”] = [1917, 1918] # add mapping
del us_wars[“Civil”] # remove mapping
“Revolutionary” ⟶ [1775, 1783]
“Mexican” ⟶ [1846, 1848]
“Civil” ⟶ [1861, 1865]
“Revolutionary” ⟶ [1775, 1783]
“Mexican” ⟶ [1846, 1848]
“Civil” ⟶ [1861, 1865]
“WWI” ⟶ [1917, 1918]
Dictionary Practice #1
13
What does each line of code evaluate to?
squares = {1: 1, 2: 4, 3: 9, 4: 16}
Dictionary Practice #2
14
Convert a list to a dictionary.
Given [5, 6, 7], produce {5: 25, 6:36, 7:49}.
Reverse keys with values in a dictionary.
Given {5: 25, 6: 36, 7: 49}, produce
{25: 5, 36: 6, 49: 7}.
Lists vs Dictionaries
15
my_list = [‘a’, ‘b’, ‘c’]
my_list[1] # ‘b’
my_list[3] # Error