Das geschachtelte Element abrufen

Beginner

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

Einführung

In Python können Wörterbücher und Listen geschachtelte Werte enthalten, die mithilfe einer Liste von Selektoren abgerufen werden können. In dieser Herausforderung werden Sie eine Funktion erstellen, die den Wert des geschachtelten Schlüssels aus einer Liste von Selektoren aus einem Wörterbuch oder einer Liste abruft.

Das geschachtelte Element abrufen

Schreiben Sie eine Funktion get(d, selectors), die ein Wörterbuch oder eine Liste d und eine Liste von Selektoren selectors als Argumente übernimmt und den Wert des geschachtelten Schlüssels zurückgibt, der durch die gegebene Selektorenliste angegeben wird. Wenn der Schlüssel nicht existiert, geben Sie None zurück.

Um diese Funktion zu implementieren, verwenden Sie functools.reduce(), um über die selectors-Liste zu iterieren. Wenden Sie operator.getitem() auf jeden Schlüssel in selectors an, um den Wert abzurufen, der als Iterand für die nächste Iteration verwendet werden soll.

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

Zusammenfassung

In dieser Herausforderung haben Sie gelernt, wie Sie den Wert eines geschachtelten Schlüssels aus einem Wörterbuch oder einer Liste mithilfe einer Liste von Selektoren abrufen. Sie haben functools.reduce() und operator.getitem() verwendet, um die get()-Funktion zu implementieren.