空の辞書があります。これは更新メソッドで操作しています。変数としてキーを使用し、値として+1
を使用しています。以下を参照してください:dict.update()が正常に動作しない
myDict, var = {}, 10
myDict.update({ var : +1 })
これを2回実行するとします。私はmyDict = {10 : 2}
を期待しています。代わりに、それは{10 : 1}
です。私は私が直接行うことによってこの問題を解決することができます理解
:
myDict[var] += 1
print (myDict)
{10 : 2}
はしかし、var
はvar
は任意の番号にすることができ、私はインクリメントしたい常に10
ではありません。 10
以外の数字だった場合は、キーが辞書に存在しないため、KeyError
と表示されます。
変数をキーとして辞書を更新し、値を1
に設定するにはどうすればよいですか?そのキーがすでにmyDict
に存在する場合は、代わりにそれぞれの値を増やしますか?
私はすでにtryとexcept文でこれを行っていますが、Pythonicではないと思います。
try:
myDict[var] += 1
except:
myDict.update({ var : 1 })
このようにして、var
の値を1ずつ増やそうとします。キーが存在しない場合、代わりにmyDict
が更新され、キーを作成して値を1に設定します。より良い方法がありますか?
これは非常にうまく動作します。パンダのデータフレームにカウンタを追加することは可能ですか?私はプログラムの最後にこれをしたいと思います。 –
データフレームは辞書を入力として受け取ることができるので、何らかの理由でカウンタを受け入れなかった場合は驚きます。そうでなければ 'dict(c)'を使うことができます。 –
@AugustWilliamsカウントがスカラーのように見える場合は、インデックスを渡すだけで済みます。 'pd.DataFrame(Counter([4,5,2,4,5])、index = [0])' – miradulo