ホームページ >バックエンド開発 >Python チュートリアル >順序を維持しながら Python リストから重複を効率的に削除する方法
リスト内の重複の削除
Python では、リスト内の重複をチェックし、重複を含まない新しいリストを返すことは一般的なタスクです。これを実現するには、いくつかの方法があります。
セットの使用
セットは、個別のオブジェクトの順序付けされていないコレクションです。これらは重複を削除する効率的な方法を提供します。リストからセットを作成するには、それを set() 関数に渡すだけです。これをリストに変換し直すには、list() 関数を使用します。ただし、このメソッドは要素の元の順序を保持しません。
t = [1, 2, 3, 1, 2, 3, 5, 6, 7, 8] list(set(t)) # [1, 2, 3, 5, 6, 7, 8]
順序の維持
元の順序を保持することが重要な場合は、collections.OrderedDictモジュールを使用できます。 OrderedDict は項目の挿入順序を維持します。リストを OrderedDict に変換し、順序を維持するためにリストに戻します。
from collections import OrderedDict list(OrderedDict.fromkeys(t)) # [1, 2, 3, 5, 6, 7, 8]
Python 3.7 での辞書の使用
Python 3.7 以降では、通常の辞書広告掲載順序も維持します。したがって、次のアプローチを使用できます。
list(dict.fromkeys(t)) # [1, 2, 3, 5, 6, 7, 8]
考慮事項
これらのメソッドはすべて、リスト内の項目がハッシュ可能 (つまり、不変) である必要があることに注意してください。 。項目がハッシュ可能ではない場合 (リストなど)、ネストされたループの比較を含む、より遅いアプローチが必要です。
以上が順序を維持しながら Python リストから重複を効率的に削除する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。