リスト内に 1 つ以上の要素が存在するかどうかを確認するのは一般的なタスクです。複雑な関数を考案する代わりに、次の簡潔なアプローチを利用できます。
Python または演算子は引数を順番に評価し、最初の真の値または空でない値を返します。これは解決策のように見えるかもしれませんが、リストの場合は不十分です。上で示したように、a の (1 または 2) は False と評価され、a の (2 または 1) は True と評価されます。これは、ブール値のコンテキストで 1 が False と評価され、式が a.
の False と同等になるために発生します。より効率的で読みやすい方法は、リスト内包表記または共通集合を使用することです。リスト内包表記を使用すると、2 番目のリストに存在するかどうかに基づいて、最初のリストの要素をフィルタリングできます。例:
L1 = [2, 3, 4] L2 = [1, 2] [i for i in L1 if i in L2] # Returns [2]
または、リストをセットに変換し、セットの交差を実行し、結果のセットのブール値を利用することもできます。このアプローチは、重複要素を効率的に処理する場合に有利です。
S1 = set(L1) S2 = set(L2) S1.intersection(S2) # Returns set([2])
空のリストと空のセットはどちらも False と評価されるため、ブール ロジックを使用してそれらの存在を直接評価できます。
以上がリスト内の要素の存在を効率的に確認する方法: ショートカットとベスト プラクティスの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。