ホームページ  >  記事  >  バックエンド開発  >  Python リスト内の複数の値のメンバーシップをテストするには?

Python リスト内の複数の値のメンバーシップをテストするには?

Linda Hamilton
Linda Hamiltonオリジナル
2024-10-28 04:37:30370ブラウズ

How to Test Membership of Multiple Values in a Python List?

リスト内の複数の値のメンバーシップ テスト

質問:

どのようにテストできますか複数の値が Python のリストのメンバーである場合は?期待される結果は、各値のメンバーシップを示すブール値を返すことですが、現在のアプローチでは予期しない出力が生成されます。

説明:

提供されたコード スニペットは、' ['b', 'a', 'foo', 'bar'] の a','b' は、Python が個々の値のメンバーシップ テストではなくタプルとして解釈するため、意図したとおりに機能しません。

答え:

リスト内の複数の値のメンバーシップを正しくテストするには、次の式を使用します。

<code class="python">all(x in ['b', 'a', 'foo', 'bar'] for x in ['a', 'b'])</code>

これは、リスト内のすべての値が一致する場合に True を返します。 2 番目のリストは最初のリストのメンバーであり、それ以外の場合は False です。

その他のオプション:

セットの使用:

<code class="python">set(['a', 'b']).issubset(set(['a', 'b', 'foo', 'bar']))
{'a', 'b'} <= {'a', 'b', 'foo', 'bar'}</code>

この方法は、リスト内の要素がハッシュ可能である場合にはうまく機能しますが、リストが大きい場合には非効率になる可能性があります。

速度テスト:

ベンチマーク結果は次のとおりです。一般に、サブセット テスト (セットを使用) は all 式より高速ですが、リストが小さく、サブセット演算がセットで使用されない限り、違いは重要ではありません。ただし、リスト内の要素がハッシュ可能でない場合、またはリストが大きい場合は、all 式の方が効率的である可能性があります。

結論:

all 式の使用一般に、リスト内の複数の値をテストする場合、特に要素がハッシュ化できない場合や効率が懸念される場合には、これが良い方法です。要素がハッシュ可能でリストが小さい場合、サブセット テストにより速度がわずかに向上する可能性があります。

以上がPython リスト内の複数の値のメンバーシップをテストするには?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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