Heim >Backend-Entwicklung >Python-Tutorial >Python-Wörterbücher: Wann sollten Sie „collections.defaultdict' verwenden?

Python-Wörterbücher: Wann sollten Sie „collections.defaultdict' verwenden?

Patricia Arquette
Patricia ArquetteOriginal
2024-12-02 04:39:10118Durchsuche

Python Dictionaries: When Should You Use `collections.defaultdict`?

Eintauchen in die Unterscheidung: Collections.defaultdict vs. Ordinary Dict

In Python unterscheidet sich das Standardwörterbuch (collections.defaultdict) von a reguläres Wörterbuch in entscheidender Weise. Während ein Standard-Dikt einen KeyError auslöst, wenn auf einen nicht vorhandenen Schlüssel zugegriffen wird, erstellt ein Standard-Dikt automatisch das fehlende Element, indem es eine angegebene Funktion aufruft.

Die Beispiele verstehen

Lassen Sie uns Sehen Sie sich die bereitgestellten Beispiele an:

d = defaultdict(int)

Hier ist int() die Standardfunktion, die die initialisiert fehlender Schlüssel mit einem ganzzahligen Wert (Standardwert 0).

for k in s:
    d[k] += 1

Diese Schleife durchläuft jedes Zeichen (k) in der Zeichenfolge s und erhöht die entsprechende im Standarddict gespeicherte Anzahl.

d.items()
dict_items([('m', 1), ('i', 4), ('s', 4), ('p', 2)])

Als Ergebnis erhalten wir ein Wörterbuch mit den Zeichenhäufigkeiten.

Im zweiten Beispiel:

d = defaultdict(list)

list() ist die Standardfunktion, die leere Listen als Standard für fehlende Schlüssel erstellt.

for k, v in s:
    d[k].append(v)

Diese Schleife paart Schlüssel und Werte aus den Listen und hängt sie an Werte in die Liste des entsprechenden Schlüssels einfügen.

d.items()
[('blue', [2, 4]), ('red', [1]), ('yellow', [1, 3])]

Das Ergebnis ist ein Wörterbuch, in dem Schlüssel Farben und Werte Listen ihrer entsprechenden Werte aus dem Original sind Liste.

Das obige ist der detaillierte Inhalt vonPython-Wörterbücher: Wann sollten Sie „collections.defaultdict' verwenden?. 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