ホームページ > バックエンド開発 > Python チュートリアル > 「実行時エラー: 反復中にディクショナリのサイズが変更されました」を回避するにはどうすればよいですか?

「実行時エラー: 反復中にディクショナリのサイズが変更されました」を回避するにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2024-11-04 10:01:30
オリジナル
341 人が閲覧しました

How to Avoid

「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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート