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