Obtener valor anidado

PythonPythonBeginner
Practicar Ahora

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

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

En Python, los diccionarios y las listas pueden contener valores anidados, los cuales se pueden acceder utilizando una lista de selectores. En este desafío, crearás una función que recupera el valor de la clave anidada indicada por la lista de selectores dada a partir de un diccionario o una lista.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL python(("Python")) -.-> python/BasicConceptsGroup(["Basic Concepts"]) python(("Python")) -.-> python/DataStructuresGroup(["Data Structures"]) python(("Python")) -.-> python/FunctionsGroup(["Functions"]) python(("Python")) -.-> python/ModulesandPackagesGroup(["Modules and Packages"]) python/BasicConceptsGroup -.-> python/comments("Comments") python/DataStructuresGroup -.-> python/lists("Lists") python/DataStructuresGroup -.-> python/tuples("Tuples") python/DataStructuresGroup -.-> python/dictionaries("Dictionaries") python/FunctionsGroup -.-> python/function_definition("Function Definition") python/ModulesandPackagesGroup -.-> python/importing_modules("Importing Modules") python/ModulesandPackagesGroup -.-> python/using_packages("Using Packages") python/ModulesandPackagesGroup -.-> python/standard_libraries("Common Standard Libraries") subgraph Lab Skills python/comments -.-> lab-13648{{"Obtener valor anidado"}} python/lists -.-> lab-13648{{"Obtener valor anidado"}} python/tuples -.-> lab-13648{{"Obtener valor anidado"}} python/dictionaries -.-> lab-13648{{"Obtener valor anidado"}} python/function_definition -.-> lab-13648{{"Obtener valor anidado"}} python/importing_modules -.-> lab-13648{{"Obtener valor anidado"}} python/using_packages -.-> lab-13648{{"Obtener valor anidado"}} python/standard_libraries -.-> lab-13648{{"Obtener valor anidado"}} end

Obtener valor anidado

Escribe una función get(d, selectores) que tome un diccionario o una lista d y una lista de selectores selectores como argumentos y devuelva el valor de la clave anidada indicada por la lista de selectores dada. Si la clave no existe, devuelve None.

Para implementar esta función, utiliza functools.reduce() para iterar sobre la lista selectores. Aplica operator.getitem() para cada clave en selectores, recuperando el valor que se usará como iterador para la siguiente iteración.

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

Resumen

En este desafío, aprendiste cómo recuperar el valor de una clave anidada de un diccionario o una lista utilizando una lista de selectores. Utilizaste functools.reduce() y operator.getitem() para implementar la función get().