Python の三項条件演算子

Syed Moiz Haider 2023年1月30日
  1. Python 2.5 以降で三項演算子を使用する
  2. タプルを使用した Python の三項演算子
  3. Python で 2.5 より前のバージョンに lambda を使用する三項演算子
Python の三項条件演算子

このチュートリアルでは、Python で三項演算子を使用するためのさまざまなメソッドを定義します。他のプログラミング言語と比較して、Python で三項演算子を使用する方法は異なります。Python バージョンとの互換性に応じて、三項演算子を使用するさまざまな方法があります。チュートリアルでは、さまざまな Python バージョンで三項演算子を使用する方法を説明するサンプルコードを提供します。

Python 2.5 以降で三項演算子を使用する

三項条件演算子は Python 2.5 で追加されました。三項演算子は、3つのオペランドを取る演算子として定義されます。この方法では、最初に指定された条件が評価され、次に値の 1つが評価され、ブール演算子に基づいて返送されます。最初に式を受け取り、次に条件を再度取得し、その後に式の else 部分が続きます。

Python の三項演算子の構文は次のとおりです。

value_if if condition else value_else

三項演算子が最初に condition を評価するとき、それは短絡を可能にし、2つの式のうちの 1つだけが評価されます。condition が真の場合、最初の式 value_if が評価され、そうでない場合、2 番目の式 value_else が評価されます。

以下のサンプルコードは、Python で三項演算子を使用する方法を示しています。

a = 2
b = 0
1 if a > b else 0

出力:

1

以下のサンプルコードに示すように、三項条件演算子の出力を変数に割り当てることができます。

a = 2
b = 0
temp = a if a > b else b
print(temp)

出力:

2

タプルを使用した Python の三項演算子

Python の三項演算子は、タプルを使用して使用できます。評価する式とブール条件ステートメントが必要です。返される式はブール条件によって異なります。条件が true の場合は最初の値が返され、式が false の場合は 2 番目の値が返されます。ただし、いずれの場合も、このメソッドは、勝者の式だけでなく、すべてを評価します。

タプルを使用して Python でこの三項演算子を使用する方法を示すために、サンプルコードを以下に示します。

a, b = 12, 43
temp = (a * 2, b / 2)[a < b]
print(temp)

出力:

21.5

Python で 2.5 より前のバージョンに lambda を使用する三項演算子

Python 2.5 より前のバージョンでは、三項演算子を lambda とともに使用できます。このメソッドは、返される値とブール式を取ります。この方法は、評価プロセスがその値が必要になるまで遅延される遅延評価手法に従います。この意味で、タプル方式よりも優れたアプローチです。このメソッドの式は、(falseValue, trueValue)[Test]() として指定されます。テスト条件が True と評価された場合、trueValue が出力されます。それ以外の場合、falseValue が出力されます。

Python で lambda を使用して三項演算子を使用する方法を説明するコード例を以下に示します。

val1, val2 = 12, 43

output = (lambda: val2, lambda: val1)[val1 > val2]()

print(output)

出力:

43
Syed Moiz Haider avatar Syed Moiz Haider avatar

Syed Moiz is an experienced and versatile technical content creator. He is a computer scientist by profession. Having a sound grip on technical areas of programming languages, he is actively contributing to solving programming problems and training fledglings.

LinkedIn

関連記事 - Python Operator