反復中にリストから要素を削除する
Python でリストを反復する場合、特定の条件を満たす項目を削除する方法を知ることが重要です。基準。ただし、反復中にリストを変更しようとすると、問題が発生する可能性があります。
ジレンマ
次のコード ブロックを考えてみましょう。
for tup in somelist: if determine(tup): # How do I remove 'tup' here?
どうすればよいですか?を保持したままリストから tup を削除すると、 iterator?
解決策
この問題にはいくつかの解決策があります。
1.リスト内包表記
somelist = [x for x in somelist if not determine(x)]
このメソッドは、削除する必要のない要素のみを含む新しいリストを作成します。
2.スライス割り当て
somelist[:] = [x for x in somelist if not determine(x)]
この割り当ては、必要な要素のみを含むように既存のリストを変更します。
3. Itertools
from itertools import filterfalse somelist[:] = filterfalse(determine, somelist)
このアプローチでは、Python の filterfalse 関数を使用して、不要な要素をフィルターで除外します。
補足
以上がPython で反復中にリストから要素を安全に削除するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。