リストを反復しながら同時に項目を削除すると、課題が生じる可能性があります。一般的なシナリオの 1 つは、特定の基準に基づいてアイテムを削除しようとすることです。このような状況では、アイテムの削除に適切な方法を決定することが重要です。
次の 2 つの効率的なアプローチを検討してください:
新規作成listを利用して必要な要素だけを含むリストを作成する理解:
somelist = [x for x in somelist if not determine(x)]
または、スライスに割り当てて既存のリストを直接変更します:
somelist[:] = [x for x in somelist if not determine(x)]
このアプローチは、somelist への複数の参照がある場合に有利です。存在しており、変更を反映する必要があります。
Itertools も便利なアプローチを提供します。
Python 2:
from itertools import ifilterfalse somelist[:] = ifilterfalse(determine, somelist)
Python 3:
from itertools import filterfalse somelist[:] = filterfalse(determine, somelist)
以上がPython での反復中にリストから項目を効率的に削除するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。