Heim >Backend-Entwicklung >Python-Tutorial >Wie implementiert man in Python eine bidirektionale Hash-Tabelle für mehrere Schlüssel mit demselben Wert?

Wie implementiert man in Python eine bidirektionale Hash-Tabelle für mehrere Schlüssel mit demselben Wert?

Susan Sarandon
Susan SarandonOriginal
2024-10-29 12:06:29632Durchsuche

How to Implement a Bidirectional Hash Table in Python for Multiple Keys with the Same Value?

Bidirektionale Hash-Tabellen-Implementierung in Python

Pythons integriertes Diktat ist eine äußerst nützliche Datenstruktur, die eine effiziente Suche basierend auf Schlüsseln ermöglicht. Es gibt jedoch Situationen, in denen eine umgekehrte Suche nach Werten gewünscht ist. Dieser Artikel untersucht die effizientesten Methoden zur Implementierung einer bidirektionalen Hash-Tabelle und bietet ein Beispiel, das von vorhandenen Lösungen inspiriert und an spezifische Anforderungen angepasst wurde.

Implementierung

Die vorgestellte Lösung verwendet ein benutzerdefiniertes Klassen-Dikt, das das Standard-Python-Dikt erweitert. Es verwaltet ein zusätzliches inverses Wörterbuch, das sich automatisch aktualisiert, wenn das Gebot geändert wird. Dieses inverse Wörterbuch ordnet Werte einer Liste von Schlüsseln zu, denen dieser Wert zugewiesen ist.

Wichtig ist, dass diese Implementierung im Gegensatz zu bestehenden Bibliotheken mehrere Schlüssel mit demselben Wert zulässt. Diese Funktion ist in bestimmten Szenarien von entscheidender Bedeutung.

Verwendung

Die Bidict-Klasse verwendet die folgenden Schlüsselmethoden:

  1. bidict(args, kwargs ): Konstruktor, der Argumente und Schlüsselwortargumente akzeptiert, die in den Standard-Dict- und Inverse-Wörterbüchern gespeichert sind.
  2. bidict.__setitem__(key, value): Setzt den Schlüssel auf den Wert. Wenn der Schlüssel bereits im Bidict enthalten ist, wird der Schlüssel aus der Liste der Schlüssel entfernt, die seinem aktuellen Wert im inversen Wörterbuch zugeordnet sind. Anschließend wird der Schlüssel auf den Wert in beiden Wörterbüchern festgelegt und die Liste der Schlüssel aktualisiert, die dem Wert im umgekehrten Wörterbuch zugeordnet sind.
  3. bidict.__delitem__(key): Entfernt den Schlüssel aus dem Bidict. Es findet den zugehörigen Wert von „key“ und aktualisiert das inverse Wörterbuch entsprechend, wobei „key“ aus der Liste der mit „value“ verknüpften Schlüssel entfernt wird. Wenn die Liste der Schlüssel für den Wert leer wird, wird der Wert aus dem inversen Wörterbuch entfernt.

Beispielverwendung

<code class="python">bd = bidict({'a': 1, 'b': 2})  
print(bd.inverse)  # {1: ['a'], 2: ['b']}
bd['c'] = 1 
print(bd.inverse)  # {1: ['a', 'c'], 2: ['b']}
del bd['c']
print(bd.inverse)  # {1: ['a'], 2: ['b']}</code>

Das obige ist der detaillierte Inhalt vonWie implementiert man in Python eine bidirektionale Hash-Tabelle für mehrere Schlüssel mit demselben Wert?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn