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のセットには、メンバーシップを追加およびチェックするためのO(1)の平均時間の複雑さがあり、それらを重複排除タスクに非常に効率的にしています。 set()
とlist()
を使用して上記の方法は次のとおりです。
<code class="python">original_list = [1, 2, 2, 3, 4, 4, 5] deduplicated_list = list(set(original_list))</code>
このアプローチは効率的ですが、要素の順序は保存されません。注文を保存することが重要な場合、異なるアプローチを使用する必要があります。
はい、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にリストを拡張するためのいくつかのアプローチがあり、それぞれが効率、秩序の保存、読みやすさの点で独自のトレードオフを備えています。いくつかの一般的な方法は次のとおりです。
セットの使用(注文保存なし):
<code class="python">original_list = [1, 2, 2, 3, 4, 4, 5] deduplicated_list = list(set(original_list))</code>
トレードオフ: O(n)時間の複雑さでは非常に効率的ですが、元の要素の順序は保存されません。
セットでのリスレクト(保存された注文):
<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)時間の複雑さではまだ比較的効率的ですが、設定方法よりも読みやすく、わずかに効率が低い場合があります。
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バージョンでのみ保証されています。
ループの使用(保存された注文):
<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 サイトの他の関連記事を参照してください。