[解決済み] Pythonのdictを反復処理しながら修正する
2023-01-08 01:37:26
質問
Pythonの辞書があるとします。
d
があり、それをこのように反復しているとします。
for k,v in d.iteritems():
del d[f(k)] # remove some item
d[g(k)] = v # add a new item
(
f
と
g
は単なるブラックボックス化された変換です)。
つまり、項目を追加/削除しようとすると
d
で反復しながら
iteritems
.
これはよく定義されていますか?あなたの答えをサポートするために、いくつかの参考文献を提供してもらえますか?
(これが壊れていたらどう修正するかは明白なので、これは私が求めている角度ではありません)
どのように解決するのか?
Pythonのドキュメントページで明示されています(for Python 2.7 ) に書かれています。
使用方法
iteritems()
を使用すると、辞書のエントリを追加または削除する際にRuntimeError
を発生させたり、すべてのエントリを反復処理することに失敗する可能性があります。
同様に Python 3 .
同じことが
iter(d)
,
d.iterkeys()
と
d.itervalues()
に対してそうであると、私は言い切ります。
for k, v in d.items():
(についてはそうだと言っておきます(私は
for
が何をするのかよく覚えていませんが、もしこの実装が
iter(d)
).
関連
-
[解決済み] Java Mapの各エントリを効率的に反復処理するには?
-
[解決済み] Pythonには文字列の'contains'サブストリングメソッドがありますか?
-
[解決済み] Pythonで現在時刻を取得する方法
-
[解決済み] PandasでDataFrameの行を反復処理する方法
-
[解決済み] Pythonの辞書からキーを削除するにはどうしたらいいですか?
-
[解決済み】ネストされたディレクトリを安全に作成するには?
-
[解決済み】forループを使った辞書の反復処理
-
[解決済み】Pythonに三項条件演算子はありますか?
-
[解決済み] Pythonでファイルの読み込みと上書きをする
-
[解決済み] 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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] 辞書を繰り返しながら、辞書の項目を削除するには?
-
[解決済み] Jupyterノートブックでenv変数を設定する方法
-
[解決済み] SQLAlchemy: セッションの作成と再利用
-
[解決済み] dict を txt ファイルに書き、それを読み取る?
-
[解決済み] データフレームをソートした後にインデックスを更新する
-
[解決済み] Pythonでマルチプロセッシングキューを使うには?
-
[解決済み] virtualenv の `--no-site-packages` オプションを元に戻す。
-
[解決済み] データクラスとtyping.NamedTupleの主な使用例
-
[解決済み] 認証プラグイン 'caching_sha2_password' はサポートされていません。
-
[解決済み] Alembicアップグレードスクリプトでインサートやアップデートを実行するにはどうすればよいですか?