ホームページ >バックエンド開発 >Python チュートリアル >順序を維持しながら Python リストから重複を効率的に削除する方法

順序を維持しながら Python リストから重複を効率的に削除する方法

DDD
DDDオリジナル
2024-12-20 12:42:19535ブラウズ

How to Efficiently Remove Duplicates from a Python List While Maintaining Order?

リスト内の重複の削除

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 サイトの他の関連記事を参照してください。

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