[解決済み] defaultdict : 第 1 引数は callable か None でなければならない。
2022-02-16 06:34:15
質問
私は次のコードを実行しました。
from collections import defaultdict
lst = list(range(0,5))
d = defaultdict(lst)
と、こんなエラーが出ました。
TypeError: first argument must be callable or None
ご協力お願いします
解決方法を教えてください。
の場合
defaultdict
は
デフォルト値
は通常
値とは言えない
であれば、それは
工場
: 新しい値を生成するメソッドです。この問題を解決するには
ラムダ式
を生成する。
lst = lambda:list(range(0,5))
d = defaultdict(lst)
ここでも、そうでなければ すべてのデフォルト値 は 同じリストを参照する . 例えばここ。
d[1].append(14)
意志
ない
に影響を与える。
d[2]
(両方の
d[1]
と
d[2]
は存在しなかった)。
あなた しかし、次のようにすることができます。 を使っています。
val = list(range(0,5))
lst = lambda:val
d = defaultdict(lst)
しかし、これは望ましくない副作用を持つことがあります。
d[1].append(14)
では
d[2]
は、次のようになります。
[1,2,3,4,5,14]
と
d[1] is d[2]
になります。
True
:
$ python3
Python 3.5.2 (default, Nov 17 2016, 17:05:23)
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from collections import defaultdict
>>> val = list(range(0,5))
>>> lst = lambda:val
>>> d = defaultdict(lst)
>>> d[1]
[0, 1, 2, 3, 4]
>>> d[1].append(14)
>>> d[2]
[0, 1, 2, 3, 4, 14]
>>> d[1] is d[2]
True
のところです。
$ python3
Python 3.5.2 (default, Nov 17 2016, 17:05:23)
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from collections import defaultdict
>>> lst = lambda:list(range(0,5))
>>> d = defaultdict(lst)
>>> d[1]
[0, 1, 2, 3, 4]
>>> d[1].append(14)
>>> d[2]
[0, 1, 2, 3, 4]
>>> d[1] is d[2]
False
関連
-
pythonを使ったオフィス自動化コード例
-
Python Decorator 練習問題
-
Pythonコードの可読性を向上させるツール「pycodestyle」の使い方を詳しく解説します
-
[解決済み] __init__.py でも「非パッケージで相対的なインポートを試みた」を修正する方法
-
[解決済み] 最小限の驚き」と「変更可能なデフォルトの引数
-
[解決済み] Python 3で「1000000000000000 in range(1000000000000001)」はなぜ速いのですか?
-
[解決済み] JSONデータをファイルに書き込むにはどうしたらいいですか?
-
[解決済み] 億の相対的輸入
-
[解決済み] リストに値が存在するかどうかを確認する最速の方法
-
[解決済み] Pythonでリストをタプルに変換する
最新
-
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 string splicing.join()とsplitting.split()の説明
-
pythonサイクルタスクスケジューリングツール スケジュール詳解
-
Python interpreted model libraryによる機械学習モデル出力の可視化 Shap
-
Pythonコードの可読性を向上させるツール「pycodestyle」の使い方を詳しく解説します
-
任意波形を生成してtxtで保存するためのPython実装
-
Python LeNetネットワークの説明とpytorchでの実装
-
FacebookオープンソースワンストップサービスpythonのタイミングツールKats詳細
-
[解決済み】Python regex AttributeError: 'NoneType' オブジェクトに 'group' 属性がない。
-
[解決済み] コーラブルとは何ですか?