[解決済み] Pythonで辞書をコピーする高速な方法
2023-03-16 06:22:03
質問
私は辞書をよく使うPythonのプログラムを持っています。私は何千回も辞書のコピーを作成する必要があります。私はキーと関連するコンテンツの両方のコピーが必要です。コピーは編集され、オリジナルにリンクされてはいけません (たとえば、コピーの変更はオリジナルに影響を及ぼしてはいけません。)。
キーは文字列、値は整数(0/1)です。
現在、簡単な方法を使っています。
newDict = oldDict.copy()
コードのプロファイリングによると、コピー操作にほとんどの時間がかかっていることがわかります。
より高速な代替手段があるのでしょうか?
dict.copy()
メソッドに代わる高速な方法はありますか?何が一番速いでしょうか?
どのように解決するには?
を見ると
C ソース
を見ると、Python の
dict
の操作で、かなり素朴な(しかし効率的な)コピーを行っていることがわかります。 これは本質的に、以下の呼び出しに集約されます。
PyDict_Merge
:
PyDict_Merge(PyObject *a, PyObject *b, int override)
これは、それらが同じオブジェクトであるかどうか、そしてそれらの中にオブジェクトがあるかどうかのようなことを素早くチェックします。 その後、ターゲットの dict に一度だけサイズ変更と割り当てを行い、要素を 1 つずつコピーします。 私は、組み込みの
copy()
.
関連
-
[解決済み] 辞書を値で並べ替えるにはどうしたらいいですか?
-
[解決済み] Pythonで辞書に新しいキーを追加するにはどうすればよいですか?
-
[解決済み] ファイルのコピー方法について教えてください。
-
[解決済み] scpを使ってリモートからローカルにフォルダをコピーするにはどうしたらいいですか?
-
[解決済み] 与えられたキーがすでに辞書に存在するかどうかをチェックする
-
[解決済み] Python 3で「1000000000000000 in range(1000000000000001)」はなぜ速いのですか?
-
[解決済み] Pythonの辞書からキーを削除するにはどうしたらいいですか?
-
[解決済み】Pythonに三項条件演算子はありますか?
-
[解決済み] Flaskで1時間ごとに関数を実行するようにスケジュールするには?
-
[解決済み] Django で全てのリクエストヘッダを取得するにはどうすれば良いですか?
最新
-
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でファイルのMD5チェックサムを計算するには?重複
-
[解決済み] Pythonです。未束縛のメソッドを束縛する?
-
[解決済み] PILからopenCVフォーマットへの変換
-
[解決済み] Spyderを仮想環境で動作させるには?
-
[解決済み] SQLAlchemy: 日付フィールドをフィルタリングする方法は?
-
[解決済み] djangoフレームワークでフォームフィールドから値を取得するには?
-
[解決済み] Celeryタスクのユニットテストはどのように行うのですか?
-
[解決済み] Flaskで非同期タスクを作る
-
[解決済み] virtualenvsはどこに作成するのですか?
-
[解決済み] Pythonでリストが空かどうかをチェックする方法は?重複