[解決済み] collections.defaultdictはどのように機能するのですか?
2022-03-14 22:49:12
質問
Pythonのドキュメントで例を読みましたが、このメソッドが何を意味するのかまだわかりません。どなたか教えてください。以下はpython docsの2つの例です。
>>> from collections import defaultdict
>>> s = 'mississippi'
>>> d = defaultdict(int)
>>> for k in s:
... d[k] += 1
...
>>> d.items()
[('i', 4), ('p', 2), ('s', 4), ('m', 1)]
そして
>>> s = [('yellow', 1), ('blue', 2), ('yellow', 3), ('blue', 4), ('red', 1)]
>>> d = defaultdict(list)
>>> for k, v in s:
... d[k].append(v)
...
>>> d.items()
[('blue', [2, 4]), ('red', [1]), ('yellow', [1, 3])]
パラメータ
int
と
list
は何のため?
解決方法は?
通常、Pythonの辞書では
KeyError
現在辞書にないキーを持つ項目を取得しようとした場合。 このとき
defaultdict
これとは対照的に、アクセスしようとする項目はすべて単純に作成されます (もちろん、まだ存在していないことが前提ですが)。 このような "default"アイテムを作成するには、コンストラクタに渡した関数オブジェクトを呼び出します(正確には、関数オブジェクトと型オブジェクトを含む任意の "callable"オブジェクトを指します)。 最初の例では、デフォルトのアイテムは次のようにして作成します。
int()
このオブジェクトは整数オブジェクトを返します。
0
. 2番目の例では、デフォルトの項目は
list()
で、これは新しい空のリスト・オブジェクトを返します。
関連
-
Pythonの非常に便利な2つのデコレーターを解説
-
[解決済み】NameError: 名前 'self' が定義されていません。
-
[解決済み] Java Mapの各エントリを効率的に反復処理するには?
-
[解決済み] Pythonには文字列の'contains'サブストリングメソッドがありますか?
-
[解決済み] 辞書を値で並べ替えるにはどうしたらいいですか?
-
[解決済み] Pythonで辞書に新しいキーを追加するにはどうすればよいですか?
-
[解決済み] 億の相対的輸入
-
[解決済み】if __name__ == "__main__": は何をするのでしょうか?
-
[解決済み】Pythonに三項条件演算子はありますか?
-
[解決済み】2つの辞書を1つの式でマージする(辞書の和をとる)には?)
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
python call matlab メソッドの詳細
-
Python Decorator 練習問題
-
Pythonによるjieba分割ライブラリ
-
[解決済み】お使いのCPUは、このTensorFlowバイナリが使用するようにコンパイルされていない命令をサポートしています。AVX AVX2
-
[解決済み】RuntimeWarning: 割り算で無効な値が発生しました。
-
[解決済み】Python regex AttributeError: 'NoneType' オブジェクトに 'group' 属性がない。
-
[解決済み】numpyの配列連結。"ValueError:すべての入力配列は同じ次元数でなければならない"
-
[解決済み】「OverflowError: Python int too large to convert to C long" on windows but not mac
-
[解決済み] **kwargsの目的と使い方を教えてください。[重複しています]。
-
[解決済み] コーラブルとは何ですか?