ホームページ  >  記事  >  バックエンド開発  >  リスト内の複数の項目を効率的にチェックする方法: リストの内包と集合の交差?

リスト内の複数の項目を効率的にチェックする方法: リストの内包と集合の交差?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-11-12 05:52:01541ブラウズ

How to Efficiently Check for Multiple Items in a List: List Comprehension vs. Set Intersection?

リスト内の複数の項目をチェックする迅速なソリューションの発見

リスト内に特定の項目が存在するかどうかを判断することは、プログラミング。カスタム関数を構築する以外に、これを検証するためのより簡潔なアプローチはありますか?

ブール演算子 (例: a の print (1 or 2)) を使用しようとすると、予期しない結果が生じる可能性があります。これに対処するために、リスト内包表記と交差集合という 2 つの効率的な方法を導入します。

リスト内包表記

リスト内包表記は、述語に基づいてリストをフィルタリングする簡潔な方法を提供します。 。次の Python スニペットは、その使用法を示しています。

L1 = [2,3,4]
L2 = [1,2]
[i for i in L1 if i in L2]

この操作は、L2 にも存在する L1 の要素のみを含む新しいリストを返します。この場合、結果のリストは [2] となり、2 が唯一の共通要素であることを示します。

Set Intersection

もう 1 つの効果的なアプローチは、セットを利用することです。 set() 関数を使用して入力リストをセットに変換すると、intersect() メソッドを使用してそれらの交差部分を見つけることができます。

S1 = set(L1)
S2 = set(L2)
S1.intersection(S2)

セットの交差部分は、両方の要素に存在する要素を含む新しいセットを返します。セット。この例では、結果は set([2]) となり、共通要素として 2 が存在することが確認されます。

ブール値の利用

空のリストと空の両方セットは False に評価されます。このプロパティにより、条件ステートメントで真理値を直接使用できるようになります。

if [i for i in L1 if i in L2]:
    print("2 exists in L2")
else:
    print("No common element found")

結論

リスト内包または集合交差を利用することで、存在するかどうかを効率的に判断できます。指定されたリストに複数の項目が表示され、この一般的なコーディング タスクに簡潔で便利なソリューションが提供されます。

以上がリスト内の複数の項目を効率的にチェックする方法: リストの内包と集合の交差?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。