1

辞書の辞書を次のように作成しました。

from collections import defaultdict
d = defaultdict(dict)

Aこれで、文字列 (キーとして) とそれに対応する整数 (値として) の辞書を持ついくつかの文字列 (このセットと呼びましょう) があります。したがって、上記のデータ構造はこのデータを完全にモデル化しています。

Aキーに対応する文字列が辞書に存在するかどうかを確認したいと思います。存在しない場合は、追加してカウンターを作成し1ます。既に存在する場合は、カウンターをインクリメントします。

これを行うためのpythonicの方法はありますか?

4

2 に答える 2

4

ネストされた のキーを持っている場合はdict、簡単なinテストを使用できます。

if somestring in d[key]:
    d[key][somestring] += 1
else:
    d[key][somestring] = 1

Counterただし、代わりにa を使用できます。

from collections import defaultdict, Counter
d = defaultdict(Counter)

d[key][somestring] += 1

a と同様にdefaultdict、 aCounterは欠落しているキーのデフォルト値を提供し、デフォルトは です0

カウンターには他にも利点があります。文字列のセットをループして、それらのカウンターを手動で 1 つずつ増やす代わりに、シーケンス全体を.update()適切なカウンターのメソッドに渡します。

d[key].update(sequence_of_strings)

Counterそれらをすべてカウントします。

クラスは、他のCounter言語で Multi-Set または Bag タイプと呼ばれるものです。それらは興味深い比較と算術演算もサポートしています。型のドキュメントを必ず読んでください。

于 2013-04-07T10:22:56.887 に答える