Ich habe ein leeres Wörterbuch, das ich mit der Update-Methode manipuliere. Ich verwende eine Variable als Schlüssel und +1
als Wert. Siehe unten:dict.update() funktioniert nicht wie erwartet
myDict, var = {}, 10
myDict.update({ var : +1 })
Sagen wir, ich dies zweimal ausführen, ich myDict = {10 : 2}
erwarten. Stattdessen ist es {10 : 1}
.
Ich verstehe, kann ich direkt dieses Problem beheben, indem Sie diese:
myDict[var] += 1
print (myDict)
{10 : 2}
jedoch var
ist nicht immer 10
ich erhöhen mag, kann var
ein beliebige Zahl sein. Wenn es eine andere Zahl als 10
wäre, würde ich einen KeyError
erhalten, da der Schlüssel im Wörterbuch nicht existiert.
Wie kann ich das Wörterbuch mit einer Variablen als Schlüssel aktualisieren und den Wert auf 1
setzen, aber wenn der Schlüssel bereits in myDict
existiert, dann wird stattdessen der entsprechende Wert erhöht?
Ich habe dies bereits durch eine Versuch und Ausnahme-Anweisung getan, aber ich fühle es ist nicht sehr Pythonic.
try:
myDict[var] += 1
except:
myDict.update({ var : 1 })
Auf diese Weise wird es versuchen, durch eine var
‚s-Wert zu erhöhen. Wenn der Schlüssel nicht vorhanden ist, wird stattdessen aktualisiert, um den Schlüssel zu erstellen und den Wert als eins festzulegen. Gibt es einen besseren Weg?
Das funktioniert sehr gut. Ist es möglich, Zähler zu einem Pandas-Datenrahmen hinzuzufügen? Wie ich das gerne am Ende meines Programms machen würde. –
Datenrahmen können ein Wörterbuch als Eingabe nehmen, also wäre ich überrascht, wenn es aus irgendeinem Grund keine Zähler akzeptiert. Wenn nicht, können Sie 'dict (c)' immer benutzen, wenn Sie es übergeben. –
@AugustWilliams Sie müssen nur einen Index übergeben, wenn Ihre Zählimpulse Skalare sind, wie sie scheinen, z. 'pd.DataFrame (Counter ([4, 5, 2, 4, 5]), index = [0])' – miradulo