Wenn im Python-Wörterbuch auf einen nicht vorhandenen Schlüssel zugegriffen wird, initialisieren Sie ihn mit einem beliebigen Wert

import collections
word_count = collections.defaultdict(int)
for word in ["foo", "bar", "foo", "foobar"]:
    word_count[word] += 1
print word_count
# >>> defaultdict(<type 'int'>, {'foobar': 1, 'foo': 2, 'bar': 1})

Wenn Sie nicht wissen, welcher Schlüssel dem Wörterbuchtyp zugewiesen ist, wird der Schlüssel häufig mit foo initialisiert und von collection.defaultdict ausgefüllt, wenn er nicht vorhanden ist. Wenn Sie defaultdict (int) ausführen, wird es beim ersten Zugriff wie ↑ auf 0 initialisiert, aber was bedeutet das schließlich?

import collections
word_count = {}
for word in ["foo", "bar", "foo", "foobar"]:
    if not word in word_count:
        word_count[word] = int()
    word_count[word] += 1
print word_count

Der Prozess ist der gleiche wie dieser. Immerhin ist es in Ordnung, wenn es sich um eine Funktion ohne Argumente handelt und einen Wert zurückgibt. Daher ist es ziemlich einfach zu verstehen, ob Sie Lambda verwenden und so etwas wie "defaultdict (lambda: [])" ausführen. ** Nachtrag: Im Beispiel zum Generieren dieser leeren Liste ist das Lesen durch Übergeben von list () ohne Verwendung von Lambda einfacher. Ein etwas komplizierteres Beispiel unten, wo Lambda verwendet werden sollte. ** ** **

Wenn Sie das vorherige Beispiel entwickeln, können Sie die Häufigkeit des Auftretens jedes Alphabets zählen.

import collections
word_count = collections.defaultdict(lambda: [0 for i in range(26)])
for word in ["foo", "bar", "foo", "foobar"]:
    for chara in word:
        word_count[word][ord(chara)-ord("a")] += 1
print word_count
# >defaultdict(<function <lambda> at 0x10e5147d0>, {'foobar': [1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0], 'foo': [0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 'bar': [1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0]})

defaultdict () selbst gibt auch defaultdict zurück, so dass Sie natürlich defaultdict (defaultdict (lambda: {" name ":" null "," age ": 20})).

Recommended Posts

Wenn im Python-Wörterbuch auf einen nicht vorhandenen Schlüssel zugegriffen wird, initialisieren Sie ihn mit einem beliebigen Wert
Löschen Sie ein bestimmtes Zeichen in Python, wenn es das letzte ist
Überprüfen Sie, ob die Zeichenfolge eine Zahl in Python ist
Ein Hinweis beim Überprüfen, ob der angegebene Schlüssel im definierten Wörterbuch mit Python vorhanden ist
Ich möchte initialisieren, wenn der Wert leer ist (Python)
[Python] So überprüfen Sie, ob der Schlüssel im Wörterbuch vorhanden ist
Ruft den Wert eines bestimmten Schlüssels bis zum angegebenen Index der Wörterbuchliste in Python ab
Beim Lesen eines Bildes mit SimpleITK tritt ein Problem auf, wenn sich Japanisch im Pfad befindet
Wenn sich eine Zeichenfolge einer bestimmten Reihe im Schlüssel des Wörterbuchs befindet, wird die Zeichenfolge in den Wert des Wörterbuchs konvertiert.
[Python] Ausführungszeit, wenn eine Funktion in einen Wörterbuchwert eingegeben wird
Ein einfacher Grund, warum der Rückgabewert von round (2.675,2) in Python 2,67 beträgt (in Wirklichkeit sollte er 2,68 betragen ...)
Hash in Perl ist ein Wörterbuch in Python
[Python] Holen Sie sich die Dateien mit Python in den Ordner
Gibt es keinen Standardwert im Wörterbuch?
Wenn ihr in der Scope-Küche das mit einem Rand machen könnt ~ ♪
[Python Data Frame] Wenn der Wert leer ist, füllen Sie ihn mit dem Wert einer anderen Spalte.
So überprüfen Sie, ob es sich um einen Wörterbuch-Typ (Wörterbuch, Hash) handelt, indem Sie einen oder alle verwenden
Überprüfen Sie, ob es sich um Unix in der Skriptsprache handelt
Bestimmen Sie, ob im Objekt ein Attribut definiert ist
So überprüfen Sie in Python, ob sich eines der Elemente einer Liste in einer anderen Liste befindet
Es ist einfach, SQL mit Python auszuführen und das Ergebnis in Excel auszugeben
So finden Sie heraus, ob "irgendwo" von pandas DataFrame einen Wert enthält
Rufen Sie die Excel-Liste rekursiv in einem bestimmten Ordner mit Python ab und schreiben Sie sie in Excel.
Dies ist schneller zu verwenden, wenn Anweisung oder Wörterbuchtyp beim Konvertieren einer Zeichenfolge (a-> b) in Python
So überprüfen Sie anhand des Hashwerts, ob der Inhalt des Wörterbuchs in Python identisch ist
Eine einfache Möglichkeit, die in Python benötigte Zeit anzuzeigen und sie intelligenter zu verbessern
Bestimmen Sie, ob die Zeichenfolge Zeit mit einem regulären Python-Ausdruck ist
So konvertieren Sie mit Python [Anwendung] von einem Array in ein Wörterbuch
So überprüfen Sie, ob ein Wert in einem Aufzählungstyp vorhanden ist
So erhalten Sie den letzten (letzten) Wert in einer Liste in Python
Erstellen Sie ein Wörterbuch in Python
[Python] Was ist ein Slice? Eine leicht verständliche Erklärung zur Verwendung anhand eines konkreten Beispiels
[Python] Die Rolle des Sterns vor der Variablen. Teilen Sie den Eingabewert und weisen Sie ihn einer Variablen zu
Wie ist der Fortschritt? Lassen Sie uns mit dem Boom in Python weitermachen
Python schlägt fehl, wenn nach dem Backslash ein Leerzeichen steht
Spielen Sie Sounds in Python ab, vorausgesetzt, die Tastatur ist eine Klaviertastatur
Überprüfen Sie, ob die Einstellungsdatei leicht verständlich gelesen wird
So stellen Sie fest, dass in Python3 ein Kreuzschlüssel eingegeben wurde
So überprüfen Sie die Speichergröße eines Wörterbuchs in Python
[Python] Der von Openpyxl geschriebene Wert wird als Exponent (E) angezeigt.
Lesen Sie die Datei in Python mit einem relativen Pfad aus dem Programm
[Python] So erhalten Sie mit Enum einen Wert mit einem anderen Schlüssel als dem Wert
Rufen Sie die Formel in der Excel-Datei als Zeichenfolge in Python ab
Lösen Sie Teilsummenprobleme mit der vollständigen Suche in Python
[Golang] Überprüfen Sie, ob eine bestimmte Zeichenfolge in der Zeichenfolge enthalten ist
Was tun, wenn der Werttyp in Python nicht eindeutig ist?
[Python] Was ist eine with-Anweisung?
Ersetzen Sie den Wörterbuchwert durch Python> update ()
[Python] Was ist der sortierte Schlüssel?
Liste der in Twitter verwendeten Sprachcodes (einschließlich API) (mit Python-Wörterbuch). Was ist die am häufigsten verwendete Sprache?
Python in ist auch ein Operator
Die Geschichte, ein Tool zum Laden von Bildern mit Python zu erstellen ⇒ Speichern unter
So geben Sie eine Zeichenfolge in Python ein und geben sie unverändert oder in die entgegengesetzte Richtung aus.
Python> Keine / Richtig / Falsch> wenn src Keine ist: / Syntax: a ist b / Funktion: is_ (a, b)> ist: Ist das Objekt das gleiche / id (a) / ==: Ist es der gleiche Wert / Flyweight-Muster / Verwenden Sie == für den numerischen Vergleich
Was tun, wenn in python json .dumps eine Dezimalstelle enthalten ist?