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 サイトの他の関連記事を参照してください。