反復子とセットを使用したリスト項目の存在の確認
要素のグループの項目がリストに存在するかどうかを確認する場合、自然なアプローチは、各要素を反復処理してその存在を調べることです。ただし、Python は、このタスクに対して明示的な関数を記述するよりも効率的な方法を提供します。
一般的なアプローチには「or」などの論理演算子が含まれますが、例で示されているように、Python の真実性により予期しない結果が生じる可能性があります。
推奨される方法は、内包表記を活用することです。たとえば、次のコードは、L1 の項目を反復処理し、L2 に存在する項目のみをフィルタリングして新しいリストを作成します。
L1 = [2,3,4] L2 = [1,2] [i for i in L1 if i in L2]
これは、共通要素を含むリストを返します。共通要素が含まれていない場合は空にすることができます。一致するものが見つかりました。空ではないリストが返された場合、グループ内に少なくとも 1 つの項目が存在します。
別のアプローチではセットを利用します。セットは Python における順序なしのコレクションであり、要素の存在を確認する効率的な方法を提供します。まず、set() 関数を使用して L1 と L2 をセットに変換します:
S1 = set(L1) S2 = set(L2)
次に、intersection() メソッドを使用してそれらの交差を見つけます:
S1.intersection(S2)
結果は次のようになります。共通の要素を含むセット。空のセットは False と評価されるため、結果を真理値として直接使用して、グループ内の項目が存在するかどうかを判断できます。
以上がPython でリスト項目の存在を効率的に確認するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。