Heim >Backend-Entwicklung >Python-Tutorial >Wie kann ich beim Erstellen eines Python-Wörterbuchs mit doppelten Schlüsseln umgehen?
Doppelte Schlüssel in Python-Wörterbüchern
Im Programmierbereich erweisen sich Wörterbücher als unschätzbar wertvoll für die Organisation von Daten, indem sie eindeutige Schlüssel entsprechenden Werten zuordnen. Die Standardimplementierung des Python-Wörterbuchs folgt jedoch einem strengen Prinzip: Jeder Schlüssel muss innerhalb des Wörterbuchs eindeutig bleiben. Diese Einschränkung stellt eine Herausforderung dar, wenn es um Szenarien mit doppelten Schlüsseln in einem Datensatz geht.
Erstellen eines Wörterbuchs mit doppelten Schlüsseln
Angenommen, wir stoßen auf eine Textdatei mit doppelten Autokennzeichen Nummern, denen jeweils unterschiedliche Informationen wie Fahrernamen, Durchwahlnummern und Parkorte zugeordnet sind. Die Aufgabe besteht darin, ein Wörterbuch mit Registrierungsnummern als Schlüssel und den entsprechenden Daten als Werten zu erstellen. Das folgende Snippet veranschaulicht einen gängigen Ansatz:
data_dict = {} data_list = [] def createDictionaryModified(filename): path = "C:\Users\user\Desktop" basename = "ParkingData_Part3.txt" filename = path + "//" + basename file = open(filename) contents = file.read() print(contents, "\n") data_list = [lines.split(",") for lines in contents.split("\n")] for line in data_list: regNumber = line[0] name = line[1] phoneExtn = line[2] carpark = line[3].strip() details = (name, phoneExtn, carpark) data_dict[regNumber] = details print(data_dict, "\n") print(data_dict.items(), "\n") print(data_dict.values())
Dieser Code unterliegt jedoch einer Einschränkung aufgrund des Standardverhaltens des Python-Wörterbuchs: Doppelte Schlüssel führen zum Überschreiben vorheriger Werte. Um dies zu umgehen, besteht eine Lösung darin, Listen oder Mengen im Wörterbuch zu speichern.
Verwendung von Collections.defaultdict
Die Python-Standardbibliothek bietet ein nützliches Werkzeug für diesen Zweck: Sammlungen.defaultdict. Diese Klasse initialisiert ein Wörterbuch mit einer Standardfabrik und stellt sicher, dass ein nicht vorhandener Schlüssel eine neue Liste oder einen neuen Satz erstellt (abhängig vom Fabrikargument).
from collections import defaultdict data_dict = defaultdict(list)
Um das Wörterbuch einfach mit doppelten Schlüsseln zu füllen Ersetzen Sie die ursprüngliche Zuweisungsanweisung:
data_dict[regNumber] = details
durch:
data_dict[regNumber].append(details)
Diese Strategie erstellt effektiv ein Wörterbuch von Listen, in dem jeder Schlüssel einem entspricht Liste der zugehörigen Werte. Durch die Nutzung von „collections.defaultdict“ können Sie doppelte Schlüssel in Ihren Python-Wörterbüchern erfolgreich verarbeiten.
Das obige ist der detaillierte Inhalt vonWie kann ich beim Erstellen eines Python-Wörterbuchs mit doppelten Schlüsseln umgehen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!