Beim Betrachten des Notizbuchs eines anderen auf Kaggle fand ich die folgende Beschreibung.
import random
import string
import collections
action_seq = [2,1]
action_seq, table = [], collections.defaultdict(lambda: [0, 0, 0])
key = ''.join([str(a) for a in action_seq[:-1]])
table[key][0] += 1
print(table[key][0])
Das obige Ausführungsergebnis ist wie folgt.
1
Um ehrlich zu sein, hatte ich keine Ahnung, was zu einer "1" führen würde. Ich habe auch den Verarbeitungsinhalt von collection.defaultdict () und Lambda überprüft, verstehe es aber immer noch nicht. Erstens konnte ich mir nicht vorstellen, was das Ergebnis sein würde, wenn ich "+ = 1" für die Sequenz machen würde.
Ich konnte verstehen, wie man sich bewegt, indem ich das folgende Debuck durchführte.
import random
import string
import collections
action_seq, table = [], collections.defaultdict(lambda: [0, 0, 0])
action_seq = [2,1]
key = ''.join([str(a) for a in action_seq[:-1]])
print(table)
table[key][0] += 1
print(table)
table[key][1] += 1
print(table)
table[key][2] += 1
print(table)
Das Ergebnis ist wie folgt.
defaultdict(<function <lambda> at 0x7fd38dfa43b0>, {})
defaultdict(<function <lambda> at 0x7fd38dfa43b0>, {'2': [1, 0, 0]})
defaultdict(<function <lambda> at 0x7fd38dfa43b0>, {'2': [1, 1, 0]})
defaultdict(<function <lambda> at 0x7fd38dfa43b0>, {'2': [1, 1, 1]})
Aus diesem Ergebnis ist ersichtlich, dass "Tabelle [Schlüssel] [0] + = 1" mit der folgenden Konfiguration verarbeitet wird.
table[key]...Setzen Sie den Tabellenschlüssel auf "2".
[0]...Standardmäßig eingestellt[0,0,0]Geben Sie die erste Spalte von an
+= 1...Addieren Sie 1 zum Wert in der ersten Spalte des Tabellenschlüssel 2-Arrays
Es stellte sich heraus, dass [0] nach [Schlüssel] eine Spaltenspezifikation ist.
Ich habe lange gebraucht, um diesen Prozess zu verstehen, also hoffe ich, dass er hilft.
Recommended Posts