Введение
В Python словари и списки могут содержать вложенные значения, которые можно получить с использованием списка селекторов. В этом испытании вы создадите функцию, которая извлекает значение вложенного ключа, указанного заданным списком селекторов, из словаря или списка.
Получить вложенное значение
Напишите функцию get(d, selectors), которая принимает в качестве аргументов словарь или список d и список селекторов selectors и возвращает значение вложенного ключа, указанного заданным списком селекторов. Если ключ не существует, верните None.
Для реализации этой функции используйте functools.reduce(), чтобы пройти по списку selectors. Примените operator.getitem() для каждого ключа в selectors, получая значение, которое будет использоваться в качестве элемента для следующей итерации.
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
Резюме
В этом испытании вы узнали, как получить значение вложенного ключа из словаря или списка с использованием списка селекторов. Вы использовали functools.reduce() и operator.getitem(), чтобы реализовать функцию get().