【Python】三項演算子でif文を1行で記述する方法

【Python】三項演算子でif文を1行で記述する方法

記事の文字数:710

三項演算子を用いると、複数行で記載するif文を1行で簡潔に記載することができます。Pythonの三項演算子を使い、条件に基づいた値を設定する方法を解説します。


スポンサーリンク

Pythonの三項演算子を使うと、if文を1行で実装することができます。

構文

構文は以下の通りです。

構文
[変数名] = [条件がTrueのときの設定値] if [条件] else [条件がFalseのときの設定値]

実装例

以下は通常の実装で奇数偶数を判定する実装例です。

example1.py
num = 5
if num % 2 == 0:
result = "偶数"
else :
result = "奇数"
print(result)

上記プログラムの実行結果は以下の通りです。

実行結果
$ python example1.py
奇数

三項演算子に変換すると以下のようになり、1行で記載できます。

example2.py
num = 6
result = "偶数" if num % 2 == 0 else "奇数"
print(result)

上記プログラムの実行結果は以下の通りです。

実行結果
$ python example2.py
偶数

リスト内包表記の例

以下のように、三項演算子は内包表記と組み合わせて記述することもできます。

example3.py
numbers = [1, 2, 3, 4, 5]
result = ["偶数" if num % 2 == 0 else "奇数" for num in numbers]
print(result)

上記プログラムの実行結果は以下の通りです。

実行結果
$ python example3.py
['奇数', '偶数', '奇数', '偶数', '奇数']

Noneチェックの例

以下のように変数の中身がNoneであるかのチェックにも活用できます。

example4.py
name = None
greeting = name if name is not None else "ゲスト"
print(greeting)

上記プログラムの実行結果は以下の通りです。

実行結果
$ python example4.py
ゲスト

ネストされた三項演算子

三項演算子は入れ子にすることもできますが、可読性が低下する可能性があり、三項演算子の実装はお勧めしません。

example5.py
x = 10
y = 20
result = "xが大きい" if x > y else "同じ" if x == y else "yが大きい"
print(result)

上記プログラムの実行結果は以下の通りです。

実行結果
$ python example5.py
yが大きい

まとめ

  • シンプルな実装: Pythonの三項演算子を使うと、if条件に基づく値設定を簡潔に実装することができます。
  • 可読性: 短い条件やシンプルなロジックには適していますが、複雑なロジックでは可読性が低下します。この場合、通常のif-else文を使用した方が良いでしょう。
  • 複雑な条件: 複雑な条件を入れると混乱しやすくなるため、コメントを追加するか、コードを分割することを検討してください。

コードの可読性を維持するために、使用する場面を慎重に選びましょう!


以上で本記事の解説を終わります。
よいITライフを!
スポンサーリンク
Scroll to Top