Получить вложенное значение

Beginner

This tutorial is from open-source community. Access the source code

Введение

В 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().