获取嵌套值
从字典或列表中获取由给定选择器列表指示的嵌套键的值。
- 使用
functools.reduce()
遍历selectors
列表。 - 对于
selectors
中的每个键,应用operator.getitem()
,检索要用作下一次迭代的迭代器的值。
from functools import reduce
from operator import getitem
def get(d, selectors):
return reduce(getitem, selectors, d)
users = {
'freddy': {
'name': {
'first': 'fred',
'last': 'smith'
},
'postIds': [1, 2, 3]
}
}
get(users, ['freddy', 'name', 'last']) # 'smith'
get(users, ['freddy', 'postIds', 1]) # 2