Introduction
En Python, les dictionnaires et les listes peuvent contenir des valeurs imbriquées, qui peuvent être accessibles à l'aide d'une liste de sélecteurs. Dans ce défi, vous devrez créer une fonction qui extrait la valeur de la clé imbriquée indiquée par la liste de sélecteurs donnée à partir d'un dictionnaire ou d'une liste.
Récupérer une valeur imbriquée
Écrivez une fonction get(d, selecteurs) qui prend un dictionnaire ou une liste d et une liste de sélecteurs selecteurs en arguments et renvoie la valeur de la clé imbriquée indiquée par la liste de sélecteurs donnée. Si la clé n'existe pas, renvoyez None.
Pour implémenter cette fonction, utilisez functools.reduce() pour itérer sur la liste selecteurs. Appliquez operator.getitem() pour chaque clé dans selecteurs, en récupérant la valeur à utiliser comme itérable pour l'itération suivante.
from functools import reduce
from operator import getitem
def get(d, selecteurs):
return reduce(getitem, selecteurs, d)
users = {
'freddy': {
'name': {
'first': 'fred',
'last': 'smith'
},
'postIds': [1, 2, 3]
}
}
get(users, ['freddy', 'name', 'last']) ## 'smith'
get(users, ['freddy', 'postIds', 1]) ## 2
Récapitulatif
Dans ce défi, vous avez appris à récupérer la valeur d'une clé imbriquée à partir d'un dictionnaire ou d'une liste à l'aide d'une liste de sélecteurs. Vous avez utilisé functools.reduce() et operator.getitem() pour implémenter la fonction get().