複数の変数を 1 つの値と比較する
問題の説明:
メソッドを探しています複数の変数が特定の整数と等しいかどうかを確認し、その後文字列を生成する Python 3つの文字で構成されています。たとえば、
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 演算子は各辺を個別に検査し、次の評価が行われます。
(x == False or y == False) or (y == False or z == False)
少なくとも 1 つの変数が目的の整数と等しいことを確認するには、次の式を使用します。
if 1 in (x, y, z): ....
Alternatively 、改善された効率:
if 1 in {x, y, z}: ....
説明:
Python では演算子に優先順位があり、or 演算子は等価 (=) よりも優先順位が低くなります。したがって、平等性が最初に評価されます。さらに、or 演算子は、最初に見つかった真の値を返します。これは、コード シーケンス:
x or y or z == 0
は、y または z が 0 であっても、x が 0 でない場合は False を返すことを意味します。単一の値に対して複数の変数を正しく評価するには、
x == 1 or y == 1 or z == 1
以上が複数の Python 変数を単一の整数値と効率的に比較するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。