Heim > Backend-Entwicklung > Python-Tutorial > Wie kann Pythons „defaultdict' mit doppelten Schlüsseln in Wörterbüchern umgehen?

Wie kann Pythons „defaultdict' mit doppelten Schlüsseln in Wörterbüchern umgehen?

Susan Sarandon
Freigeben: 2024-12-21 03:11:10
Original
610 Leute haben es durchsucht

How Can Python's `defaultdict` Handle Duplicate Keys in Dictionaries?

Ü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
...
Nach dem Login kopieren

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 = {}
Nach dem Login kopieren

durch:

from collections import defaultdict
data_dict = defaultdict(list)
Nach dem Login kopieren

Jetzt stattdessen Wenn Sie Werte direkt zuweisen möchten, verwenden Sie die Methode append():

data_dict[regNumber].append(details)
Nach dem Login kopieren

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)
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage