【Python】三項演算子でelseなしで記述することができるのかについて解説

Pythonプログラミングをする上で、三項演算子は非常に便利な機能の一つです。

ですが、elseのときになにもしないようにしたいけどどう書けばいいのかわからない人もいるのではないでしょうか。

この記事では、三項演算子を使って何もしないelseを書く方法について、詳しく解説します。

目次から探す

何もしないelseの実装方法

Pythonでは、条件によって何もしない場合の処理を実装する方法がいくつかあります。

この記事では、三項演算子を使った条件分岐で、何もしないelseを実装する方法を2つ紹介します。

Noneを使った方法

Noneは、Pythonで「何もない」ことを表す特殊な値です。

三項演算子で何もしないelseを実装する場合、以下のように書くことができます。

x = 10

result = "xは5より大きいです" if x > 5 else None
if result:
    print(result)

このコードでは、xが5より大きい場合にはメッセージを表示し、それ以外の場合には何もしません。

lambdaを使った方法

lambdaは、Pythonで無名関数を定義するためのキーワードです。

三項演算子で何もしないelseを実装する場合、以下のように書くことができます。

x = 10

result = (lambda: "xは5より大きいです", lambda: None)[x <= 5]()
if result:
    print(result)

このコードでは、xが5より大きい場合にはメッセージを表示し、それ以外の場合には何もしません。

いずれの方法も、条件によって何もしない場合の処理を実装することができます。

適切な方法を選んで、Pythonプログラムをより効率的に書くことができます。

実践例

それでは、実際に三項演算子で何もしないelseを書く方法をいくつかの実践例で見ていきましょう。

これらの例を通じて、実際のプログラムでどのように活用できるかを理解していきます。

条件に応じた変数の代入

三項演算子を使って、条件に応じて変数に値を代入することができます。

例えば、次のようなコードが考えられます。

score = 80
result = "合格" if score >= 60 else None
print(result)

このコードでは、scoreが60以上の場合、resultに”合格”という文字列が代入されます。

それ以外の場合、resultにはNoneが代入されます。

実行結果は以下のようになります。

合格

リスト内包表記での利用

リスト内包表記を使って、条件に応じてリストの要素を生成することができます。

例えば、次のようなコードが考えられます。

numbers = [1, 2, 3, 4, 5]
even_numbers = [n if n % 2 == 0 else None for n in numbers]
print(even_numbers)

このコードでは、numbersリストの各要素に対して、偶数であればそのままの値を、奇数であればNoneをリストに追加しています。

実行結果は以下のようになります。

[None, 2, None, 4, None]

関数の引数に応じた処理

関数の引数に応じて、処理を分岐させることができます。

例えば、次のようなコードが考えられます。

def greet(name, formal=True):
    greeting = "こんにちは、{}さん。" if formal else "やあ、{}。"
    print(greeting.format(name))

greet("山田", formal=True)
greet("鈴木", formal=False)

このコードでは、greet関数が引数formalに応じて、フォーマルな挨拶文かカジュアルな挨拶文を選択しています。

実行結果は以下のようになります。

こんにちは、山田さん。
やあ、鈴木。

これらの実践例を通じて、三項演算子で何もしないelseを書く方法が、実際のプログラムでどのように活用できるかを理解できたことでしょう。

適切な場面で活用することで、コードの可読性や効率を向上させることができます。

目次から探す