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

Python で元の順序を維持しながらリストから重複を削除するにはどうすればよいですか?

Barbara Streisand
リリース: 2024-12-23 07:01:07
オリジナル
805 人が閲覧しました

How Can I Remove Duplicates from a List While Maintaining Original Order in Python?

リストの順序を維持しながら重複を処理する

重複要素を含むリストを操作する場合、元の順序を維持しながら重複要素を削除することが望ましいことがよくあります。これを達成するには、元のシーケンスが無視されるため、セットを使用します。ただし、Python では、重複を削除しながら順序を維持する代替アプローチがいくつか提供されています。

組み込み関数と Python のイディオム

  • Peter Be のベンチマーク: https://www.peterbe.com/plog/uniqifiers-benchmark
  • 最速のソリューション:
def f7(seq):
    seen = set()
    seen_add = seen.add
    return [x for x in seq if not (x in seen or seen_add(x))]
ログイン後にコピー

このソリューションは seen.add を seen_add に割り当てますループ反復中に seen.add を繰り返し呼び出すと、Python の動的言語によるパフォーマンスのオーバーヘッドが発生する可能性があるため、効率を高めるためNature.

  • オーダードセット (レシピ): https://code.activestate.com/recipes/528878-owned-set/
  • オーダーセットプロパティ:

    • O(1) 挿入、削除、メンバー チェック操作
  • 注: "上記のコードの seen.add の後の「または」は、単にセットの更新を試みるメカニズムであり、論理的なコンポーネントの本質的な部分ではありません。 test.

これらのメソッドを利用することで、開発者は元の順序を損なうことなくリストから重複要素を削除し、特定のデータ操作シナリオに対応できます。

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

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