Überwindung doppelter Schlüssel in Python-Wörterbüchern
In Python sind Wörterbücher Datenstrukturen, die eindeutige Schlüssel zugeordneten Werten zuordnen. Was passiert jedoch, wenn Sie in Ihren Daten auf doppelte Schlüssel stoßen?
Stellen Sie sich eine Textdatei mit doppelten Autokennzeichen und zugehörigen Informationen vor, wie zum Beispiel:
EDF768, Bill Meyer, 2456, Vet_Parking TY5678, Jane Miller, 8987, AgHort_Parking GEF123, Jill Black, 3456, Creche_Parking ABC234, Fred Greenside, 2345, AgHort_Parking ...
Vielleicht möchten Sie ein Wörterbuch erstellen mit den Registrierungsnummern als Schlüssel und den Daten als Werten. Durch die einfache Verwendung der dict[key] =-Wertzuweisung werden jedoch vorhandene Werte, die mit doppelten Schlüsseln verknüpft sind, überschrieben.
Die Lösung: defaultdict
Pythons defaultdict aus dem Collections-Modul ermöglicht es Ihnen diese Einschränkung zu überwinden. Es handelt sich um eine Unterklasse von dict, die Standardwerte für nicht spezifizierte Schlüssel bereitstellt.
Um es zu verwenden, ersetzen Sie einfach:
data_dict = {}
durch:
from collections import defaultdict data_dict = defaultdict(list)
Jetzt stattdessen Wenn Sie Werte direkt zuweisen möchten, verwenden Sie die Methode append():
data_dict[regNumber].append(details)
Dadurch wird effektiv eine Liste von Werten erstellt, die jedem doppelten Schlüssel zugeordnet sind Speichern aller mit diesen Schlüsseln verbundenen Daten.
Beispiel:
Der folgende Code verwendet defaultdict, um ein Wörterbuch aus den Beispieldaten zu erstellen:
from collections import defaultdict data_dict = defaultdict(list) for line in data_list: regNumber = line[0] # ... (rest of the code unchanged) data_dict[regNumber].append(details)
Dies führt zu einem Wörterbuch, in dem jede Registrierungsnummer (Schlüssel) einer Liste zugehöriger Daten (Werte) zugeordnet ist.
Das obige ist der detaillierte Inhalt vonWie kann Pythons „defaultdict' mit doppelten Schlüsseln in Wörterbüchern umgehen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!