Heim >Backend-Entwicklung >Python-Tutorial >Python – Holen Sie sich bestimmte Elemente auf Verschachtelungsebene aus dem Wörterbuch

Python – Holen Sie sich bestimmte Elemente auf Verschachtelungsebene aus dem Wörterbuch

PHPz
PHPznach vorne
2023-08-20 14:37:13837Durchsuche

Python - 从字典中获取特定的嵌套级别项

In Python ermöglichen Ihnen Wörterbücher das Speichern von Schlüssel-Wert-Paaren, was die Organisation und den effizienten Zugriff auf Daten vereinfacht. Manchmal müssen wir möglicherweise ein bestimmtes Element aus einer verschachtelten Ebene des Wörterbuchs abrufen. Wir können Elemente auf verschachtelter Ebene aus dem Wörterbuch abrufen, indem wir isinstance() mit der rekursiven -Methode und dict.get()-Methode verwenden. In diesem Artikel werden wir verschiedene Möglichkeiten untersuchen, Elemente aus einem Python-Wörterbuch auf einer bestimmten Verschachtelungsebene abzurufen.

Verschachteltes Wörterbuch

Ein verschachteltes Wörterbuch ist ein Wörterbuch, das andere Wörterbücher als Werte enthält. Dies ermöglicht die Erstellung hierarchischer Strukturen, in denen Daten baumartig organisiert sind. Jede Ebene der Hierarchie stellt ein Schlüssel-Wert-Paar dar, und der Wert ist ein weiteres Wörterbuch. Der Zugriff auf Elemente aus einer solchen Struktur erfordert spezielle Methoden zum Navigieren durch die Ebenen des Baums.

Methode 1: Rekursion verwenden

Durch die Verwendung der rekursiven Methode können wir problemlos Elemente aus verschachtelten Ebenen innerhalb eines Wörterbuchs abrufen, ohne jede Ebene explizit anzugeben. Dies bietet eine flexible und effiziente Lösung, insbesondere beim Umgang mit komplexen Datenstrukturen.

Algorithmus

  • Definieren Sie eine Funktion, nennen wir sie get_nested_item, die zwei Parameter akzeptiert: Wörterbuchdaten und eine Liste von Schlüsseln, die die verschachtelte Ebene darstellen.

  • Überprüfen Sie, ob die Schlüsselliste leer ist. Wenn leer, werden die Daten zurückgegeben, da sie den Wert für die gewünschte Verschachtelungsebene darstellen.

  • Andernfalls holen Sie sich den ersten Schlüssel aus der Schlüsselliste

  • Überprüfen Sie, ob der Schlüssel im Datenwörterbuch vorhanden ist. Falls vorhanden, wird die Funktion get_nested_item rekursiv aufgerufen, wobei der diesem Schlüssel entsprechende Wert als neuer Datenparameter und die verbleibenden Schlüssel in der Schlüsselliste verwendet werden.

  • Wenn der Schlüssel nicht vorhanden ist, wird „None“ oder der Standardwert zurückgegeben, um anzugeben, dass das Element nicht gefunden wurde.

Die chinesische Übersetzung von

Beispiel

lautet:

Beispiel

Im folgenden Beispiel definieren wir die Funktion get_nested_item, die ein Datenwörterbuch und eine Liste von Schlüsseln als Parameter akzeptiert. Wir prüfen, ob die Schlüsselliste leer ist. Wenn ja, geben wir den Datenwert zurück. Andernfalls holen wir uns den ersten Schlüssel aus der Schlüsselliste und prüfen, ob er im Datenwörterbuch vorhanden ist. Wenn es existiert, rufen wir rekursiv die Funktion get_nested_item mit dem entsprechenden Wert als neuen Daten und den verbleibenden Schlüsseln in der Schlüsselliste auf. Wenn der Schlüssel nicht gefunden wird, wird None zurückgegeben.

def get_nested_item(data, keys):
    if len(keys) == 0:
        return data

    key = keys[0]
    if key in data:
        return get_nested_item(data[key], keys[1:])
    else:
        return None

keys = ['employees', 'John', 'position']
position = get_nested_item(company_data, keys)
print(position)

Ausgabe

Manager

Methode 2: Verwenden Sie isinstance() und Rekursion

Die Funktion

isinstance() wird in Python verwendet, um den Typ eines Objekts zu überprüfen. Gibt True zurück, wenn das Objekt eine Instanz des angegebenen Typs ist, andernfalls False. Wir können diese Funktion mit Rekursion verwenden, um die Ebenen verschachtelter Wörterbücher dynamisch zu durchlaufen.

Algorithmus

  • Definieren Sie eine Funktion, nennen wir sie get_nested_item, die zwei Parameter akzeptiert: Wörterbuchdaten und eine Liste von Schlüsseln, die die verschachtelte Ebene darstellen.

  • Überprüfen Sie, ob die Schlüsselliste leer ist. Wenn leer, werden die Daten zurückgegeben, da sie den Wert für die gewünschte Verschachtelungsebene darstellen.

  • Andernfalls holen Sie sich den ersten Schlüssel aus der Schlüsselliste.

  • Verwenden Sie isinstance(data, dict), um zu überprüfen, ob es sich bei den Daten um ein Wörterbuch handelt. Wenn ja, rufen Sie die Funktion get_nested_item rekursiv mit dem Wert des entsprechenden Schlüssels als neuem Datenparameter und der verbleibenden Liste von Schlüsseln als Parameter auf.

  • Wenn es sich bei den Daten nicht um ein Wörterbuch handelt oder der Schlüssel nicht vorhanden ist, geben Sie None oder einen Standardwert zurück, um anzugeben, dass das Element nicht gefunden wurde.

Die chinesische Übersetzung von

Beispiel

lautet:

Beispiel

Im folgenden Beispiel verwenden wir isinstance(data, dict), um zu prüfen, ob es sich bei den Daten um ein Wörterbuch handelt. Wenn ja, rufen wir get_nested_item weiterhin rekursiv auf. Diese Prüfung stellt sicher, dass beim Navigieren in der gültigen Wörterbuchhierarchie Fehler beim Zugriff auf nicht vorhandene Schlüssel vermieden werden.

def get_nested_item(data, keys):
    if len(keys) == 0:
        return data

    key = keys[0]
    if isinstance(data, dict) and key in data:
        return get_nested_item(data[key], keys[1:])
    else:
        return None

keys = ['employees', 'John', 'position']
position = get_nested_item(company_data, keys)
print(position)

Ausgabe

Manager

Methode 3: Verwendung der dict.get()-Methode

Die Methode

dict.get() ist eine nützliche Möglichkeit, einen Wert aus einem Wörterbuch abzurufen und einen Standardwert bereitzustellen, wenn der Schlüssel nicht gefunden wird. Dies ist ein saubererer und sichererer Ansatz als die direkte Verwendung eines Wörterbuchindex, insbesondere wenn es sich um verschachtelte Wörterbücher handelt oder wenn Sie nicht wissen, ob der Schlüssel vorhanden ist.

Die chinesische Übersetzung von

Beispiel

lautet:

Beispiel

Im folgenden Beispiel haben wir ein verschachteltes Wörterbuch company_data, das Mitarbeiterinformationen darstellt. Wir verwenden company_data.get('employees', {}).get('John', {}).get('position', '. „Unknown“ (Unbekannt), um die Position des Mitarbeiters „John“ abzurufen. Durch die Verwendung von dict.get() auf jeder Ebene stellen wir sicher, dass der Code problemlos mit fehlenden Schlüsseln umgeht, ohne einen Fehler auszulösen. „Unbekannt“ wird zurückgegeben.

company_data = {
    'employees': {
        'John': {
            'age': 30,
            'position': 'Manager',
            'department': 'Sales'
        },
        'Emily': {
            'age': 25,
            'position': 'Developer',
            'department': 'IT'
        }
    }
}
position = company_data.get('employees', {}).get('John', {}).get('position', 'Unknown')
print(position)

Ausgabe

Manager

Fazit

In diesem Artikel haben wir besprochen, wie man mithilfe von Rekursions-, isinstance- und rekursiven Methoden sowie der Methode dict.get() ein bestimmtes Element auf verschachtelter Ebene aus einem Wörterbuch erhält. Die Methode dict.get() ist besonders nützlich, wenn Sie sich über die Existenz eines Schlüssels nicht sicher sind oder mit fehlenden Schlüsseln problemlos umgehen möchten. Die Funktion isinstance() und die Rekursion ermöglichen es uns, verschachtelte Wörterbücher effizient zu durchlaufen.

Das obige ist der detaillierte Inhalt vonPython – Holen Sie sich bestimmte Elemente auf Verschachtelungsebene aus dem Wörterbuch. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:tutorialspoint.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen