「RuntimeError: 反復中にディクショナリのサイズが変更されました」の回避
反復処理中にディクショナリを変更しようとすると、「 RuntimeError: 反復中にディクショナリのサイズが変更されました」エラー。これは、辞書のループ中に辞書のサイズを変更 (エントリの追加または削除) すると反復子が無効になるために発生します。
この問題に対処するには、list() または iterate を使用して辞書キーのコピーを作成することをお勧めします。 d.keys() を介してキーを上書きします。 Python 3.x の場合、d.keys() はビュー オブジェクトを返すため、list() を使用して明示的にコピーを作成する必要があります。
たとえば、次の辞書について考えてみましょう:
<code class="python">d = {'a': [1], 'b': [1, 2], 'c': [], 'd':[]}</code>
空のリストを持つキーと値のペアを削除するには、次のコードを使用できます:
<code class="python">for i in list(d): # Python 3.x # or for i in d.keys(): # Python 2.x if not d[i]: d.pop(i)</code>
list() を使用してキーのコピーを作成することで、反復中に辞書サイズを変更する問題を回避します。そしてループが正常に完了することを確認してください。
以上が「実行時エラー: 反復中にディクショナリのサイズが変更されました」を回避するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。