ホームページ  >  記事  >  バックエンド開発  >  反復中に Python 辞書から項目を削除できますか?

反復中に Python 辞書から項目を削除できますか?

Susan Sarandon
Susan Sarandonオリジナル
2024-11-02 03:31:30621ブラウズ

Can You Delete Items from a Python Dictionary During Iteration?

反復中に辞書から項目を削除できますか?

Python で辞書を操作する場合、キーの反復中に項目を削除するという問題が生じます。これを効果的に実現する方法は次のとおりです。

Python 3 のオプション

Python 3 では、keys() メソッドから取得したキーのリストを反復処理できます。

<code class="python">for k in list(mydict.keys()):
    if mydict[k] == 3:
        del mydict[k]</code>

Python 2 のオプション

Python 2 では、 iterkeys() メソッドはリストの代わりにイテレータを返します。したがって、 iterkeys() を反復処理中に辞書を変更すると、RuntimeError が発生します。代わりに、keys() メソッドを使用してキーのリストを取得します。

<code class="python">for k in mydict.keys():
    if k == 'two':
        del mydict[k]</code>

項目の値に基づいて削除するには、items() メソッドを反復処理します。

<code class="python">for k, v in mydict.items():
    if v == 3:
        del mydict[k]</code>

次のことを忘れないでください。反復プロセスが中断される可能性があるため、反復中に辞書を変更する場合は注意してください。

以上が反復中に Python 辞書から項目を削除できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。