ホームページ >バックエンド開発 >Python チュートリアル >Python での反復中にリストから項目を効率的に削除するにはどうすればよいですか?

Python での反復中にリストから項目を効率的に削除するにはどうすればよいですか?

DDD
DDDオリジナル
2024-12-30 16:41:09430ブラウズ

How Can I Efficiently Remove Items from a List During Iteration in Python?

リストの反復中の効率的な項目の削除

リストを反復しながら同時に項目を削除すると、課題が生じる可能性があります。一般的なシナリオの 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使用法

Itertools も便利なアプローチを提供します。

Python 2:

from itertools import ifilterfalse
somelist[:] = ifilterfalse(determine, somelist)

Python 3:

from itertools import filterfalse
somelist[:] = filterfalse(determine, somelist)

以上がPython での反復中にリストから項目を効率的に削除するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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