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

Pythonのリストから重複要素を削除するにはどうすればよいですか?

百草
リリース: 2025-03-19 12:02:24
オリジナル
174 人が閲覧しました

Pythonのリストから重複要素を削除するにはどうすればよいですか?

Pythonのリストから重複要素を削除するには、いくつかの方法を使用できます。一般的で簡単なアプローチの1つは、リストをセットに変換してからリストに戻すことです。これがあなたがそれを行う方法です:

 <code class="python">original_list = [1, 2, 2, 3, 4, 4, 5] deduplicated_list = list(set(original_list)) print(deduplicated_list) # Output: [1, 2, 3, 4, 5]</code>
ログイン後にコピー

ただし、この方法では、元の要素の順序は保持されません。注文保存が懸念事項ではない場合、これはシンプルで効果的な方法です。

Pythonのリストから重複を排除する最も効率的な方法は何ですか?

時間の複雑さの点で、Pythonのリストから重複を排除する最も効率的な方法は、セットを使用することです。 Pythonのセットには、メンバーシップを追加およびチェックするためのO(1)の平均時間の複雑さがあり、それらを重複排除タスクに非常に効率的にしています。 set()list()を使用して上記の方法は次のとおりです。

 <code class="python">original_list = [1, 2, 2, 3, 4, 4, 5] deduplicated_list = list(set(original_list))</code>
ログイン後にコピー
ログイン後にコピー

このアプローチは効率的ですが、要素の順序は保存されません。注文を保存することが重要な場合、異なるアプローチを使用する必要があります。

Pythonのリストから複製を削除しながら、要素の順序を保存できますか?

はい、Pythonのリストから複製を削除しながら、要素の順序を保持できます。これを達成する1つの方法は、SEED要素を追跡するためにセットを使用してリスト理解を使用することです。

 <code class="python">original_list = [1, 2, 2, 3, 4, 4, 5] seen = set() deduplicated_list = [x for x in original_list if not (x in seen or seen.add(x))] print(deduplicated_list) # Output: [1, 2, 3, 4, 5]</code>
ログイン後にコピー

このメソッドは、リストを一度繰り返し、 seenセットに要素をチェックして追加します。要素が以前に見られなかった場合、それは新しいリストに含まれており、元の順序が維持されるようにします。

Pythonとそれらのトレードオフのリストを推定するためのさまざまなアプローチは何ですか?

Pythonにリストを拡張するためのいくつかのアプローチがあり、それぞれが効率、秩序の保存、読みやすさの点で独自のトレードオフを備えています。いくつかの一般的な方法は次のとおりです。

  1. セットの使用(注文保存なし):

     <code class="python">original_list = [1, 2, 2, 3, 4, 4, 5] deduplicated_list = list(set(original_list))</code>
    ログイン後にコピー
    ログイン後にコピー

    トレードオフ: O(n)時間の複雑さでは非常に効率的ですが、元の要素の順序は保存されません。

  2. セットでのリスレクト(保存された注文):

     <code class="python">original_list = [1, 2, 2, 3, 4, 4, 5] seen = set() deduplicated_list = [x for x in original_list if not (x in seen or seen.add(x))]</code>
    ログイン後にコピー

    トレードオフ:要素の順序を保持し、O(n)時間の複雑さではまだ比較的効率的ですが、設定方法よりも読みやすく、わずかに効率が低い場合があります。

  3. dict.fromkeys()を使用()(Python 3.7に保存されている注文):

     <code class="python">original_list = [1, 2, 2, 3, 4, 4, 5] deduplicated_list = list(dict.fromkeys(original_list))</code>
    ログイン後にコピー

    トレードオフ:挿入命令辞書の導入により、Python 3.7以降の注文を保存します。効率的で簡潔ですが、注文の保存は新しいPythonバージョンでのみ保証されています。

  4. ループの使用(保存された注文):

     <code class="python">original_list = [1, 2, 2, 3, 4, 4, 5] deduplicated_list = [] for item in original_list: if item not in deduplicated_list: deduplicated_list.append(item)</code>
    ログイン後にコピー

    トレードオフ:注文を保持し、理解するのは簡単ですが、特にメンバーシップテストが繰り返されるため、他の方法、特に大きなリストの場合は効率が低い場合があります。

各方法には、効率、注文の保存、またはコードの読みやすさの優先順位に応じて、ユースケースがあります。

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

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