Bidirektionale Hash-Tabellenimplementierung mit Bidict-Klasse
Bidirektionale Hash-Tabellen bieten die Möglichkeit, innerhalb derselben Daten sowohl nach Schlüsseln als auch nach Werten zu indizieren Struktur. Das native Wörterbuch von Python ist eine wertvolle Datenstruktur für die unidirektionale Zuordnung, reicht jedoch nicht aus, wenn es um die bidirektionale Suche geht. Dieser Artikel stellt eine effiziente Möglichkeit zur Implementierung einer bidirektionalen Hash-Tabelle in Python vor.
Implementierungsdetails
Das Herzstück der Implementierung ist die Bidict-Klasse, die das Standardwörterbuch von Python erweitert . Diese Klasse verwaltet zwei Wörterbücher: eines für die standardmäßige Schlüssel-Wert-Zuordnung und ein weiteres, das inverse Wörterbuch, für die Wert-Schlüssel-Zuordnung.
Hauptfunktionen
Die Bidict-Klasse bietet mehrere bemerkenswerte Funktionen:
Verwendungsbeispiel
Um seine Funktionalität zu demonstrieren, erstellen wir ein Bidict und manipulieren Sie es:
<code class="python">import numpy as np bd = bidict(zip(['a', 'b'], np.random.randint(2, size=2))) print(bd) # {'a': 1, 'b': 0} print(bd.inverse) # {1: ['a'], 0: ['b']}</code>
Wir können den Wert für Schlüssel 'a' ändern:
<code class="python">bd['a'] = 0 print(bd) # {'b': 0, 'a': 0} print(bd.inverse) # {0: ['b', 'a']}</code>
Beachten Sie, dass das inverse Wörterbuch automatisch aktualisiert wird, um die Änderung widerzuspiegeln. Wir können auch Elemente aus dem Wörterbuch löschen:
<code class="python">del bd['a'] print(bd) # {'b': 0} print(bd.inverse) # {0: ['b']}</code>
Auch hier passt sich das inverse Wörterbuch nahtlos an die Löschung an.
Zusammenfassend lässt sich sagen, dass die Bidict-Klasse eine effiziente und bequeme Implementierung einer bidirektionalen Funktion bietet Hash-Tabelle in Python, die eine automatische Aktualisierung des inversen Verzeichnisses, Unterstützung für mehrere Schlüssel mit demselben Wert und eine Suche in konstanter Zeit bietet.
Das obige ist der detaillierte Inhalt vonWie können Sie eine bidirektionale Hash-Tabelle in Python implementieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!