Nested containers
- what are nested containers?
- Nested containers Examples
- Nested Container indexing
- Nested Container Iteration
what are nested containers?
- Containers that have containers as items
- each level of nesting indicates the depth of the containers
- Matryoshka dolls
Nested list Examples
- collection of test scores (list of lists)
[[55,,60,93,28], [77,45,23,95],[23,88,62]]
- list of 3D coordinates (list of tuples)
[(1,1,1), (10,20,10),(-10,-10,-10),(20,0,0)]
- list of employee records (list of dictionaries)
[{'name':'James", 'hire_date':'2017/10/5'},
{'name':'Jana", 'hire_date':'2021/10/5'},
{'name':'Jae", 'hire_date':'2016/10/5'},
]
- Grocery Categories (dictionary of lists)
{
'dairy':['milk', 'cheese','yoghurt'],
'fruit':['apple', 'banana','grapes','durian'],
'vegetable':['carrot', 'kale','lettuce','eggplant']
}
the keys are the categories, and the values are lists of items
- state information (dictionary of dictionaries)
{
'CA':{'name': 'California', 'capital': 'Sacramento','area':'163696'},
'OR':{'name': 'Oregon', 'capital': 'Salem','grapes','area':'93381'},
'WA':{'name': 'Washington', 'capital': 'Olympia','area':'71362'}
}
Nested Container indexing
- Access parts of a nested container
-
Consists of a series of index operators(a,b,c)
- the left most index represent the shallowest levels
- while the rightmost indexes represent the deepest levels. variable = [[[..]]] variable [a][b][c]
coord = [(-2,1),(2,-1),(3,4)]
0 | 1 | 2 | |
(-2,1) | (2,-1) | (3,4) |
expression | value | |
at coord[0] | we get the tuple (-2,1) |
expression | value | |
at coord[0] | we get the tuple (-2,1) |
expression | value | |
at coord[0][0] | -2 | |
at coord[0][1] | 1 | |
at coord[1][0] | 2 | |
at coord[1][1] | -1 |
https://ucbx.hosted.panopto.com/Panopto/Pages/Viewer.aspx?id=19fa5338-360a-4065-8821-aeef00c648ad
Nested Container Iteration
- with nested containers, accessing every element requires nested iteration
- an iteration for every level of nesting
- each item is handed of the next level for further iteration
scorelist = [[38,62,93], [28], [64,76]]
#a list of lists
for outer_item in scorelist:
#the outerloop
for inner_item in outer_item:
#inner loop
print(inner_item, end='')
print()
# Output
first iteration of the outer loop
name | value | |
outer_item | [38,62,93] | |
inner_item | 38 |
|| Strings || Variables || Lists || Tuples || Dictionary || || Control || Function|| Files || Exceptions || || OOP || Algorithm ||Data Structure ||back