ホームページ >バックエンド開発 >Python チュートリアル >Python で複数の変数が単一の値と等しいかどうかを効率的にテストする方法
Python で単一の値に対して複数の変数が等しいかどうかを同時にテストする方法
多数の変数を整数と比較し、3 つの変数を生成する場合文字列を出力として使用する場合、この概念を Python に変換する際に問題が発生する可能性があります。問題を詳しく調べて、最も効率的な解決策を見つけてみましょう。
次のコード スニペットを考えてみましょう:
x = 0 y = 1 z = 3 mylist = [] if x or y or z == 0: mylist.append("c") if x or y or z == 1: mylist.append("d") if x or y or z == 2: mylist.append("e") if x or y or z == 3: mylist.append("f")
このコードの予想される出力は次のようになります:
["c", "d", "f"]
ただし、ブール式の性質上、Python は or 演算子の両側を個別に評価します。その結果、このコードは望ましい結果を生成しません。
この問題を解決するには、特定の値に対して各変数を個別にテストするなど、別のアプローチを採用できます。
if x == 1 or y == 1 or z == 1: mylist.append("d")
Alternatively 、タプルまたはセットに対して包含テストを利用できます:
if 1 in (x, y, z): mylist.append("d") # Or even more efficiently if 1 in {x, y, z}: mylist.append("d")
セットは固定コストのメンバーシップ テストを提供するため、最適な選択肢となります。このシナリオでは、
ブール式は演算の階層に従い、演算子のような演算子や == のような比較演算子よりも優先順位が低いことを覚えておくことが重要です。これらの優先ルールを理解すると、より効果的で正確なコードを作成するのに役立ちます。
以上がPython で複数の変数が単一の値と等しいかどうかを効率的にテストする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。