Wörterbücher sind eine der mächtigsten Datenstrukturen in der Programmiersprache Python. Dabei handelt es sich um eine Datenstruktur, die aus Schlüssel-Wert-Paaren besteht. Es hat mehrere Vorteile: Der Zugriff auf Werte hat beispielsweise eine Zeitkomplexität von O(1), es ist speichereffizient, einfach zu aktualisieren, zu löschen und zu iterieren und bietet viele integrierte Funktionen für schnelle Vorgänge.
Wir verfolgen dieses Thema, da Probleme auftreten, wenn wir versuchen, Listen als Schlüssel zu verwenden. Listen sind veränderbare Datentypen in Python. So können wir Werte innerhalb der Liste löschen, aktualisieren und anhängen. Wenn wir also eine Hash-Funktion aus einer Liste und Listenelementen generieren und sich die Elemente der Liste ändern, können wir die Hash-Funktion nicht mehr finden, da sich die Hash-Funktion geändert hat.
Ein weiteres potenzielles Problem besteht darin, dass verschiedene Listen möglicherweise denselben Hashwert haben. Wenn die Summe der Werte zweier Listen gleich ist, sind auch ihre Hashwerte gleich. Wenn in diesem Fall eine der Listen als Schlüssel im Wörterbuch verwendet wird und eine andere Liste mit demselben Hash durchsucht wird, liefert das Wörterbuch möglicherweise falsche Ergebnisse.
Eine Möglichkeit, die Schlüsselliste eines Wörterbuchs in ein Tupel umzuwandeln und sie als Schlüssel zu verwenden, besteht darin, diese Indirektion zu verwenden. Beachten Sie, dass die Werte zwar gleich bleiben, der Datentyp jedoch keine Liste mehr ist
<variable name> = tuple(<list to convert into tuple>)
Hier benötigt das Tupel einen Parameter, nämlich den Namen der Liste.
Im folgenden Code haben wir zunächst ein leeres Wörterbuch mit dem Namen my_dict erstellt. Anschließend haben wir die Liste mit der Tuple-Methode in ein Tuple-Objekt konvertiert „Hallo Welt!“ als Wert.
my_dict = {} my_list = [1, 2, 3] my_tuple = tuple(my_list) my_dict[my_tuple] = "Hello, World!" print(my_dict)
{(1, 2, 3): 'Hello, World!'}
Eine andere Möglichkeit besteht darin, die Liste in den Datentyp „String“ zu konvertieren. String ist ebenfalls ein unveränderlicher Datentyp; daher können wir ihn als Schlüssel eines Wörterbuchs verwenden.
<variable name> = ''.join(str(e) for e in <name of the list>)
Die Anweisung hier nimmt einzelne Elemente aus der Liste und fügt sie zu einem String zusammen. Die Join-Funktion verbindet Folgen von Zeichenfolgen.
Im folgenden Code haben wir zunächst eine Liste mit dem Namen my_list erstellt. Als nächstes haben wir die Join-Methode verwendet, die eine Zeichenfolge von Listenelementen erstellt. Da die Zeichenfolge als Wörterbuchschlüssel verwendet werden kann, haben wir diese als Schlüssel des Wörterbuchs my_list_str verwendet .
my_list = [1, 2, 3] my_list_str = ''.join(str(e) for e in my_list) my_dict = {my_list_str: 'value'} print(my_dict) print(my_dict[my_list_str])
{'123': 'value'} value
Wir können auch das JSON-Modul und integrierte Funktionen verwenden, um die Liste zunächst mithilfe der Dumps-Methode in einen String zu konvertieren und diesen später als Schlüssel des Wörterbuchs zu verwenden.
<name of variable< = json.dumps(<name of list<)
Hier ist die dumps-Methode der JSON-Bibliothek, die Python-Objekte in JSON-formatierte Zeichenfolgen serialisiert. Die dumps-Methode akzeptiert den Namen der Zeichenfolge als Parameter
Im folgenden Code importieren wir zunächst die JSON-Bibliothek. Als nächstes erstellen wir eine Liste namens my_list. Wir haben mithilfe der Dumps-Methode ein serialisiertes Objekt aus der Liste erstellt. Jetzt haben wir das serialisierte Objekt als Wörterbuchschlüssel my_dict.
import json my_list = [1, 2, 3] my_key = json.dumps(my_list) my_dict = {my_key: 'value'} print(my_dict)
{'[1, 2, 3]': 'value'}
In diesem Artikel haben wir gelernt, wie man Listen als Schlüssel eines Wörterbuchs in Python 3 verwendet. Wir haben die Schwierigkeiten verstanden, mit denen wir konfrontiert waren, wenn wir direkt versuchten, die Listen als Schlüssel im Python-Wörterbuch zu erstellen Wir haben auch gelernt, wie man mit dem JSON-Modul Listen als Wörterbuchschlüssel verwendet
Das obige ist der detaillierte Inhalt vonWie verwende ich eine Liste als Wörterbuchschlüssel in Python 3?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!