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

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

DDD
リリース: 2025-01-01 03:47:09
オリジナル
478 人が閲覧しました

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

リスト内の重複の検索

整数のリストが与えられた場合、その目的は、リスト内の重複要素を特定して分離することです。これを実現するには、さまざまな手法を使用できます。

セット データ構造の使用

セットは、順序付けされていない一意の要素のコレクションです。リストから重複を削除するには、set(a) 関数を使用してリストをセットに変換します。結果のセットには、元のリストの個別の要素のみが含まれます。

重複の識別と出力

重複を識別して出力するには、次の Counter モジュールを利用できます。コレクションライブラリ。これは、リスト内の各要素の出現をカウントする便利な方法を提供します。内包表記を使用すると、複数回出現する要素を抽出できます。

from collections import Counter

a = [1,2,3,2,1,5,6,5,5,5]
print([item for item, count in Counter(a).items() if count > 1])

# Output: [1, 2, 5]
ログイン後にコピー

重複の効率的な削除

重複を効率的に削除するには、単純なループを使用します。表示された要素のセットを維持するために使用されます。新しい要素に遭遇すると、その要素がセットに追加され、それが見られたことを示します。要素がすでにセット内にある場合、その要素は重複とみなされ、破棄できます。

seen = set()
no_dupes = []

for x in a:
    if x not in seen:
        no_dupes.append(x)
        seen.add(x)
ログイン後にコピー

簡潔な重複の削除

重複を削除する別の簡潔なアプローチリスト内包表記を利用することです:

seen = set()
no_dupes = [x for x in a if x not in seen and not seen.add(x)]
ログイン後にコピー

処理ハッシュ不可能な要素

リスト内の要素がハッシュ可能でない場合 (リストなど)、セットと辞書は使用できません。このような場合、各要素を他のすべての要素と比較する二次時間解を採用する必要があります。

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート