辞書のデフォルト辞書を作成するコードを記述しようとしています。しかし、私はそのようなことをどのように初期化/作成するのか分かりません。辞書のデフォルト辞書を作成するにはどうすればいいですか
from collections import defaultdict
inner_dict = {}
dict_of_dicts = defaultdict(inner_dict(int))
辞書のこのデフォルトの辞書の使用は私が開いたファイルから生成した単語の各ペアのためにある(例えば、[[「M UH M」、「M:私の現在の試みは、次のようになります空のスペースで区切られた最初の単語の各セグメントを外側の辞書のキーとして設定し、次に空のスペースで区切られた2番目の単語の各セグメントに対してそのセグメントの頻度を設定します。ちょうどこのような何かが実際に辞書のデフォルトの辞書を生成するかどうかしかし、私はちょうど思っていた、今では出力にすべてのエラーを持っていないようにこれを実行して持っ例えば
[['M UH M', 'm oo m']]
(<class 'dict'>, {'M': {'m': 2}, 'UH': {'oo': 1}})
。
これが重複しているとお詫び申し上げますが、これらの質問に対するこれまでの回答は混乱しており、別の状況でありました。
d = defaultdict(dict)
をこの特定の問題については、collections.Counter
がより適切であろう
>>> from collections import defaultdict, Counter
>>> d = defaultdict(Counter)
>>> for a, b in zip(*[x.split() for x in ['M UH M', 'm oo m']]):
... d[a][b] += 1
>>> print(d)
defaultdict(collections.Counter,
{'M': Counter({'m': 2}), 'UH': Counter({'oo': 1})})
編集を:
あなたの現在のコードは無効です... 'inner_dict'は辞書であると定義されていて、それを' inner_dict(int) 'として呼び出そうとします... – donkopotamus