Python では、あるリストの要素が別のリストに存在するかどうかを判断することは、さまざまなデータ操作タスクに不可欠です。この記事では、この重複をテストし、その効率を評価し、ベスト プラクティスを提供するためのさまざまな方法を検討します。
1. Generator Expression
<code class="python">any(i in a for i in b)</code>
このメソッドは、1 つのリストを反復処理し、もう 1 つのリストのメンバーシップをチェックし、一致するものが見つかった場合は True を返します。その時間計算量は O(n) です。ここで、n は大きい方のリストの長さです。
2。 Set Intersection
<code class="python">bool(set(a) & set(b))</code>
このアプローチでは、両方のリストをセットに変換し、それらの交差を見つけます。交差部分が空でない場合は、True を返します。この場合の最悪の場合の時間計算量は O(n m) です。ここで、n と m はリストの長さです。
3.ハイブリッド セット交差
<code class="python">a = set(a) any(i in a for i in b)</code>
このメソッドは、1 つのリストのみをセットに変換し、もう一方のリストを反復処理して、セットのメンバーシップを確認します。これにより、中間セットの作成が回避され、従来のセット交差よりも高速になります。
4. Isdisjoint メソッド
<code class="python">not set(a).isdisjoint(b)</code>
このアプローチでは、フリーズ セットの isdisjoint メソッドを使用して、共通の要素があるかどうかを判断します。そうでない場合、結果は False になります。それ以外の場合、True です。
ワーストケース:
ほとんどの場合、isdisjointこのメソッドは、定数時間のセット メンバーシップ チェックの恩恵を受けるため、最も高速です。
ジェネレーター式のベスト ケース:
考慮すべき要素:
以上がPython で、あるリストの要素が別のリストと重複しているかどうかを確認するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。