Python Data Structures: Dictionaries

Dictionaries

A dictionary is a map between key-value pairs.


For example:

A house can have 3 bedrooms.
‘bedrooms’ is the key, and the number of bedrooms is the value.


How does this look in terms of a data structure?

house = {'bedrooms': 3}
house
{'bedrooms': 3}
house = {'bedrooms': 3, 'bathrooms': 2, 'city': 'Vancouver', 'price': 2499999, 'date_sold': (1,3,2015)}
house
{'bedrooms': 3,
 'bathrooms': 2,
 'city': 'Vancouver',
 'price': 2499999,
 'date_sold': (1, 3, 2015)}


condo = {'bedrooms' : 2, 
         'bathrooms': 1, 
         'kitchens' : 1, 
         'city'     : 'Burnaby', 
         'price'    : 699999, 
         'date_sold': (27,8,2011)
        }
condo
{'bedrooms': 2,
 'bathrooms': 1,
 'kitchens': 1,
 'city': 'Burnaby',
 'price': 699999,
 'date_sold': (27, 8, 2011)}
house
{'bedrooms': 3,
 'bathrooms': 2,
 'city': 'Vancouver',
 'price': 2499999,
 'date_sold': (1, 3, 2015)}


house['price']
2499999


house['price'] = 7
house
{'bedrooms': 3,
 'bathrooms': 2,
 'city': 'Vancouver',
 'price': 7,
 'date_sold': (1, 3, 2015)}
house
{'bedrooms': 3,
 'bathrooms': 2,
 'city': 'Vancouver',
 'price': 7,
 'date_sold': (1, 3, 2015)}


house['bed monster'] = True
house
{'bedrooms': 3,
 'bathrooms': 2,
 'city': 'Vancouver',
 'price': 7,
 'date_sold': (1, 3, 2015),
 'bed monster': True}
house[9999] = ['age', 'old']
house[('trees', 'flower', 'vegetables')] = {'Garden': 3}
house
{'bedrooms': 3,
 'bathrooms': 2,
 'city': 'Vancouver',
 'price': 7,
 'date_sold': (1, 3, 2015),
 'bed monster': True,
 9999: ['age', 'old'],
 ('trees', 'flower', 'vegetables'): {'Garden': 3}}
house
{'bedrooms': 3,
 'bathrooms': 2,
 'city': 'Vancouver',
 'price': 7,
 'date_sold': (1, 3, 2015),
 'bed monster': True,
 9999: ['age', 'old'],
 ('trees', 'flower', 'vegetables'): {'Garden': 3}}


house.items()
dict_items([('bedrooms', 3), ('bathrooms', 2), ('city', 'Vancouver'), ('price', 7), ('date_sold', (1, 3, 2015)), ('bed monster', True), (9999, ['age', 'old']), (('trees', 'flower', 'vegetables'), {'Garden': 3})])

Dictionaries to Dataframes

name height diameter flowering
0 Cherry 7 12 True
1 Oak 20 89 False
2 Willow 12 30 True
3 Fir 16 18 False


data = { 'name': ['Cherry', 'Oak', 'Willow', 'Fir'], 
         'height': [7, 20, 12, 16], 
         'diameter': [12, 89, 30, 18], 
         'flowering': [True, False, True, False]}
         
forest = pd.DataFrame.from_dict(data)
forest
name height diameter flowering
0 Cherry 7 12 True
1 Oak 20 89 False
2 Willow 12 30 True
3 Fir 16 18 False
name height diameter flowering
0 Cherry 7 12 True
1 Oak 20 89 False
2 Willow 12 30 True
3 Fir 16 18 False


data = {0: ['Cherry', 7, 12, True],
        1: ['Oak', 20, 89, False],
        2: ['Willow', 12, 30, True],
        3: ['Fir', 16, 18, False]}
column_names = ['name', 'height', 'diameter', 'flowering']

forest = pd.DataFrame.from_dict(data, orient='index', columns= column_names)
forest
name height diameter flowering
0 Cherry 7 12 True
1 Oak 20 89 False
2 Willow 12 30 True
3 Fir 16 18 False

Let’s add what we learned to our table


Data Structure preserves order Mutable Symbol Can contain duplicates
str '' or ""
list []
tuple ()
set {}
dict {:} keys: ☓ , values: ✓

Let’s apply what we learned!