4.3. Mapping Nested

4.3.1. Dict Keys

data = {
    (1,): 'setosa',
    (2,): 'virginica',
    (3,): 'versicolor',
}
data = {
    (5.8, 2.7, 5.1, 1.9): 'virginica',
    (5.1, 3.5, 1.4, 0.2): 'setosa',
    (5.7, 2.8, 4.1, 1.3): 'versicolor',
}
data = {
    {1}: 'setosa',
    {1,2,3}: 'virginica',
}
# Traceback (most recent call last):
#     ...
# TypeError: unhashable type: 'set'

data = {
    [1]: 'setosa',
    [1,2,3]: 'virginica',
}
# Traceback (most recent call last):
#     ...
# TypeError: unhashable type: 'list'

4.3.2. Dict Values

  • Value can be any object

data = {
    'Sepal length': 5.8,
    'Sepal width': 2.7,
    'Petal length': 5.1,
    'Petal width': 1.9,
}
data = {
    'virginica': (5.8, 2.7, 5.1, 1.9),
    'setosa': (5.1, 3.5, 1.4, 0.2),
    'versicolor': (5.7, 2.8, 4.1, 1.3),
}
data = {
    'virginica': [5.8, 2.7, 5.1, 1.9],
    'setosa': (5.1, 3.5, 1.4, 0.2),
    'versicolor': {5.7, 2.8, 4.1, 1.3},
}
data = {
    'commander': {'firstname': 'Jan', 'lastname': 'Twardowski'},
    'medical_officer': {'firstname': 'José', 'lastname': 'Jiménez'},
    'flight_engineer': {'firstname': 'Иван', 'lastname': 'Иванович'},
}
data = {
    'date': '1969-07-21',
    'age': 42,
    'astronaut': {'name': 'Jan Twardowski', 'medals': {'Medal of Honor', 'Purple Heart'}},
    'agency': ['POLSA', 'Roscosmos', 'ESA'],
    'location': ('Baikonur', 'Johnson Space Center'),
}
data = [
    {'Sepal length': 5.1, 'Sepal width': 3.5, 'Species': 'setosa'},
    {'Petal length': 4.1, 'Petal width': 1.3, 'Species': 'versicolor'},
    {'Sepal length': 6.3, 'Petal width': 1.8, 'Species': 'virginica'},
    {'Sepal length': 5.0, 'Petal width': 0.2, 'Species': 'setosa'},
    {'Sepal width': 2.8, 'Petal length': 4.1, 'Species': 'versicolor'},
    {'Sepal width': 2.9, 'Petal width': 1.8, 'Species': 'virginica'},
]
data = [
    {'sepal_length': 5.4, 'sepal_width': 3.9, 'petal_length': 1.3, 'petal_width': 0.4, 'species': 'setosa'},
    {'sepal_length': 5.9, 'sepal_width': 3.0, 'petal_length': 5.1, 'petal_width': 1.8, 'species': 'virginica'},
    {'sepal_length': 6.0, 'sepal_width': 3.4, 'petal_length': 4.5, 'petal_width': 1.6, 'species': 'versicolor'},
]
data = [
    {'measurements': [4.7, 3.2, 1.3, 0.2], 'species': 'setosa'},
    {'measurements': [7.0, 3.2, 4.7, 1.4], 'species': 'versicolor'},
    {'measurements': [7.6, 3.0, 6.6, 2.1], 'species': 'virginica'},
]

4.3.3. List of Dicts

Listing 4.13. GetItem
data = [
    {'measurements': [4.7, 3.2, 1.3, 0.2], 'species': 'setosa'},
    {'measurements': [7.0, 3.2, 4.7, 1.4], 'species': 'versicolor'},
    {'measurements': [7.6, 3.0, 6.6, 2.1], 'species': 'virginica'},
]

data[0]
# {'measurements': [4.7, 3.2, 1.3, 0.2], 'species': 'setosa')

data[0]['measurements']
# [4.7, 3.2, 1.3, 0.2]

data[0]['measurements'][2]
# 1.3

data[0]['species']
# 'setosa'

data[0].get('kind')
# None

data[0].get('kind', 'n/a')
# 'n/a'

data[2].get('measurements')
# [7.6, 3.0, 6.6, 2.1]

data[2].get('measurements')[1]
# 3.0
Listing 4.14. Length
data = [
    {'measurements': [4.7, 3.2, 1.3, 0.2], 'species': 'setosa'},
    {'measurements': [7.0, 3.2, 4.7, 1.4], 'species': 'versicolor'},
    {'measurements': [7.6, 3.0, 6.6, 2.1], 'species': 'virginica'},
]

len(data)
# 3

len(data[0])
# 2

len(data[1])
# 2

len(data[1]['species'])
# 10

len(data[1]['measurements'])
# 4

4.3.4. Assignments

Todo

Create assignments