ホームページ >バックエンド開発 >Python チュートリアル >Python リストから重複する要素を効率的に見つけて削除するにはどうすればよいですか?

Python リストから重複する要素を効率的に見つけて削除するにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-12-17 13:11:25483ブラウズ

How Can I Efficiently Find and Remove Duplicate Elements from a Python List?

リスト内の重複の検索

Python では、特定の要件に応じて、いくつかの方法でリスト内の重複を検索できます。 .

を使用するSets

Python の Set は、重複した要素を自動的に削除する順序付けされていないコレクションです。リストから重複を削除し、元の順序で新しいリストを作成するには、単に set(a) 式を使用します。

重複のリストの取得

重複する要素のリストが必要な場合は、辞書を使用して、元のリスト内の各要素の出現数をカウントできます。カウントが 1 より大きい要素は重複とみなされます。次のコードは、このアプローチを示しています。

a = [1,2,3,2,1,5,6,5,5,5]

import collections
print([item for item, count in collections.Counter(a).items() if count > 1])

# Output: [1, 2, 5]

Set Intersection の使用

重複を検索するもう 1 つの方法は、set を使用して元のリストから一意の要素のセットを作成することです。 (a)。次に、このセットと元のリストを交差させることで重複を見つけることができます。

ハッシュ化不可能な要素を使用した例

リスト内の要素がハッシュ化できない場合 (リストや辞書など)、要素のすべてのペアを反復処理し、それらを比較することで、総当たりのアプローチを使用できます。等価。

コード例:

a = [[1], [2], [3], [1], [5], [3]]

no_dupes = [x for n, x in enumerate(a) if x not in a[:n]]
print(no_dupes)  # [[1], [2], [3], [5]]

dupes = [x for n, x in enumerate(a) if x in a[:n]]
print(dupes)  # [[1], [3]]

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

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