Récupérer une valeur imbriquée

PythonPythonBeginner
Pratiquer maintenant

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

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

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.


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{{"Récupérer une valeur imbriquée"}} python/lists -.-> lab-13648{{"Récupérer une valeur imbriquée"}} python/tuples -.-> lab-13648{{"Récupérer une valeur imbriquée"}} python/dictionaries -.-> lab-13648{{"Récupérer une valeur imbriquée"}} python/function_definition -.-> lab-13648{{"Récupérer une valeur imbriquée"}} python/importing_modules -.-> lab-13648{{"Récupérer une valeur imbriquée"}} python/using_packages -.-> lab-13648{{"Récupérer une valeur imbriquée"}} python/standard_libraries -.-> lab-13648{{"Récupérer une valeur imbriquée"}} end

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