「実行時エラー: 反復中にディクショナリのサイズが変更されました」エラーを回避する
反復処理中にディクショナリを変更しようとしました。以下のコード スニペットは、「RuntimeError: 反復中にディクショナリのサイズが変更されました」エラーを引き起こす可能性があります:
d = {'a': [1], 'b': [1, 2], 'c': [], 'd':[]}
for i in d:
if not d[i]:
d.pop(i)
この制限を克服するには、次のようなさまざまなアプローチを使用できます。
Python 2.x および 3.x:
'list':
for i in list(d):
Python 3.x (以降):[ を使用してキーのコピーを強制します。 &&&]
Use 'collections.OrderedDict':from collections import OrderedDict
for i in OrderedDict(d):
代替ソリューション:
new_d = {}
for key, value in d.items():
if value:
new_d[key] = value
keys_to_pop = list(d)
for i in keys_to_pop:
if not d[i]:
d.popitem(i)
これらの手法を活用すると、Python で辞書を処理するときに発生する「RuntimeError: 反復中にディクショナリのサイズが変更されました」エラーを回避できます。 免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3