Obter Valor Aninhado

Beginner

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

Introdução

Em Python, dicionários e listas podem conter valores aninhados, que podem ser acessados usando uma lista de seletores. Neste desafio, você criará uma função que recupera o valor da chave aninhada indicada pela lista de seletores fornecida, a partir de um dicionário ou lista.

Obter Valor Aninhado

Escreva uma função get(d, selectors) que recebe um dicionário ou lista d e uma lista de seletores selectors como argumentos e retorna o valor da chave aninhada indicada pela lista de seletores fornecida. Se a chave não existir, retorne None.

Para implementar esta função, use functools.reduce() para iterar sobre a lista selectors. Aplique operator.getitem() para cada chave em selectors, recuperando o valor a ser usado como o iterador para a próxima iteração.

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

Resumo

Neste desafio, você aprendeu como recuperar o valor de uma chave aninhada de um dicionário ou lista usando uma lista de seletores. Você usou functools.reduce() e operator.getitem() para implementar a função get().