Heim >Backend-Entwicklung >Python-Tutorial >Wie kann ich beim Erstellen eines Python-Wörterbuchs mit doppelten Schlüsseln umgehen?

Wie kann ich beim Erstellen eines Python-Wörterbuchs mit doppelten Schlüsseln umgehen?

Barbara Streisand
Barbara StreisandOriginal
2024-12-13 17:16:09223Durchsuche

How Can I Handle Duplicate Keys When Creating a Python Dictionary?

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!

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