自己初次使用时常常搞不清嵌套的顺序,所以写下以下案例方便理解(推倒式遍历时深层级在后面)
rooms = [
[
{'age': 14, 'hobby': 'horses', 'name': 'A'},
{'age': 12, 'hobby': 'piano', 'name': 'B'},
{'age': 9, 'hobby': 'chess', 'name': 'C'}
],
[
{'age': 15, 'hobby': 'programming', 'name': 'D'},
{'age': 17, 'hobby': 'driving', 'name': 'E'}
],
[ {'age': 45, 'hobby': 'writing', 'name': 'F'},
{'age': 43, 'hobby': 'chess', 'name': 'G'}
]
]
有如上列表嵌套结构,我们使用嵌套列表推导式可以方便的获取深度相同的一层数据
- 获取姓名
>>> [ person['name']
... for room in rooms
... for person in room]
['A', 'B', 'C', 'D', 'E', 'F', 'G']
- 获取爱好为下棋的人
>>> [ person['name']
... for room in rooms
... for person in room
... if person['hobby'] == 'chess' ]