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

Python で連続する重複要素を効率的に削除するにはどうすればよいですか?

DDD
リリース: 2024-12-05 17:37:11
オリジナル
452 人が閲覧しました

How Can I Efficiently Remove Consecutive Duplicate Elements in Python?

Python での連続した重複要素の削除

Python では、リストから連続した重複要素を削除するタスクに複数の方法でアプローチできます。 1 つのアプローチでは、リストを繰り返し処理し、同じ値を持つ隣接する要素を削除します。ただし、長いリストを扱う場合、この方法は面倒になる可能性があります。

より効率的で洗練されたソリューションを実現するには、Python の組み込み関数とライブラリを活用できます。 itertools.groupby を使用すると、連続する重複要素をグループ化し、それに応じて結果のジェネレーターを操作できます。

すべての連続する重複要素を削除するには、グループ化されたイテレータからキーを抽出するだけです。

L = [1,1,1,1,1,1,2,3,4,4,5,1,2]
from itertools import groupby
[key for key, _group in groupby(L)]
ログイン後にコピー

出力:

[1, 2, 3, 4, 5, 1, 2]
ログイン後にコピー

質問の 2 番目の部分では、連続した重複がある要素のみを削除する必要があります。各グループ内の要素の数に基づいて、グループ化された反復子をさらにフィルタリングします。ジェネレーター式を使用すると、要素を合計して、グループ内に複数の要素があるかどうかを判断できます。

[k for k, g in groupby(L) if sum(1 for i in g) < 2]
ログイン後にコピー

出力:

[2, 3, 5, 1, 2]
ログイン後にコピー

この手法は、他の手法と比べて Python 的で効率的です。最初の試みに。 Python の組み込み関数を利用してリストをグループ化し、フィルター処理することで、簡潔で読みやすいソリューションが得られます。

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

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