[Python] Ich verstehe nicht, was ich mit Tabelle [Schlüssel] [0] + = 1 mache

Ich weiß nicht, was ich mit Tabelle [Schlüssel] [0] + = 1 mache.

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.

Wie hast du verstanden?

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

[Python] Ich verstehe nicht, was ich mit Tabelle [Schlüssel] [0] + = 1 mache
Was ich mit Python-Arrays gemacht habe
Ich verstehe nicht mitmachen
Ich habe fp-Wachstum mit Python versucht
Ich habe versucht, mit Python zu kratzen
Ich habe einen Blackjack mit Python gemacht!
Was ich getan habe, um die Python2 EOL mit Zuversicht zu begrüßen
Ich habe gRPC mit Python ausprobiert
Ich habe versucht, mit Python zu kratzen
Ich verstehe Python auf Japanisch!
Ich habe mit Python einen Blackjack gemacht.
Was ich in Python gelernt habe
Ich habe Wordcloud mit Python gemacht.
Was ich mit json.dumps in Pythons base64-Codierung süchtig gemacht habe
Was soll ich denn mit der Python-Verzeichnisstruktur machen?
[Python] Was ist eine with-Anweisung?
pyenv-vertualenv installiert die Python3-Serie nicht gut
Ich habe versucht, WebScraping mit Python.
[Python] Was ist der sortierte Schlüssel?
Ich habe eine SMS mit Python gesendet
Was tun mit PYTHON Release?
Ich mochte den Tweet mit Python. ..
Ich habe mit PyQt5 und Python3 gespielt
Ich möchte mit Python debuggen
Ich habe versucht, Prolog mit Python 3.8.2 auszuführen.
Ich habe mit Python einen Daemon erstellt
Ich habe die SMTP-Kommunikation mit Python versucht
Python | Was Sie mit Python machen können
FBX SDK Welche Fähigkeiten benötige ich, um ein Programm mit Python zu erstellen?
Ich möchte Twitter mit Python twittern, bin aber süchtig danach
Eine Erinnerung an das, was ich beim Starten von Atcoder mit Python feststeckte
[Feature Poem] Ich verstehe die funktionale Sprache nicht. Sie können sie mit Python verstehen: Teil 1 Funktionen, die Funktionen empfangen, sind praktisch.
Ich habe mit Python einen Zeichenzähler erstellt
Ich habe eine Heatmap mit Seaborn [Python] gezeichnet.
Ich wollte ABC160 mit Python lösen
Hinweise zur japanischen OCR mit Python
Ich möchte Protokolle mit Python analysieren
Ich möchte mit aws mit Python spielen
Was ich von Python Boot Camp bekommen habe
Ich habe eine funktionale Sprache mit Python ausprobiert
Ich habe versucht, mit Python ② (Fibonacci-Zahlenfolge) aufzuklären.
Ich habe Numba mit Python3.5 installiert und verwendet
Frage: Die Mehrfachintegration mit Python funktioniert nicht
Ich habe mit Python eine Hex-Map erstellt
Excel-Tabellenerstellung mit Python [Fortschrittsverwaltungstabelle]
Ich verwende Tox und Python 3.3 mit Travis-CI
Ich habe mit Python ein schurkenhaftes Spiel gemacht
Was ich süchtig nach Python Autorun war
Ich wollte ABC172 mit Python lösen
Ich habe mit Python einen einfachen Blackjack gemacht
Ich habe mit Python eine Einstellungsdatei erstellt
# Ich habe so etwas wie Vlookup mit Python # 2 ausprobiert
Ich habe mit Python einen Neuronensimulator erstellt
Was ich getan habe, um Python-Speicher zu speichern
Was ich getan habe, als ich mit Lambda Python im Zeitlimit steckte