Pythonのラムダ式で条件分岐を行う方法を徹底解説!初心者でもわかる実用例
生徒
「先生、Pythonのラムダ式って簡単に条件分岐もできるんですか?」
先生
「はい、できますよ。ラムダ式は短いコードを書くのに便利で、条件分岐もコンパクトに書けます。」
生徒
「条件分岐って、if文みたいなことですよね?ラムダ式だとどうやるんですか?」
先生
「その通りです。それでは、Pythonのラムダ式を使って条件分岐を行う方法を具体例で説明しましょう。」
1. ラムダ式とは?
Pythonのラムダ式とは、「一行で書ける簡単な関数」のことです。通常の関数はdefキーワードで定義しますが、ラムダ式を使うと短く書けます。例えば、2つの数を足す関数をラムダ式で書くと次のようになります。
add = lambda x, y: x + y
print(add(3, 5))
8
このように、lambda 引数: 処理という形で書きます。
2. 条件分岐とは?
条件分岐とは、状況に応じてプログラムの動きを変える仕組みのことです。日常生活で言えば、「もし雨なら傘を持っていく、そうでなければサングラスをかける」といった判断が条件分岐です。Pythonではifやelseを使って条件分岐を行います。
通常の条件分岐はこんな感じです。
age = 20
if age >= 18:
print("成人です。")
else:
print("未成年です。")
成人です。
3. ラムダ式で条件分岐を行う
ラムダ式でも条件分岐が可能です。Pythonでは「三項演算子」という短い書き方を使って、1行で条件分岐を書けます。
check_age = lambda age: "成人です。" if age >= 18 else "未成年です。"
print(check_age(20))
print(check_age(15))
成人です。
未成年です。
この例では、ifとelseを1行にまとめて、条件に応じた結果を返しています。
4. 実用例:数値の正負を判定する
ラムダ式で条件分岐を使うと、数値が正の数なのか負の数なのか、またはゼロなのかを判定する関数もコンパクトに書けます。
check_number = lambda num: "正の数" if num > 0 else ("負の数" if num < 0 else "ゼロ")
print(check_number(5))
print(check_number(-3))
print(check_number(0))
正の数
負の数
ゼロ
条件分岐を入れ子にして、より複雑な判定も短く書けるのが特徴です。
5. ラムダ式の条件分岐を使うときの注意点
- あまり複雑な条件分岐はラムダ式で書かない方が読みやすい
- 1行で書けるシンプルな条件に向いている
- 複雑になりそうなら通常の
if文を使う方がメンテナンスしやすい
6. まとめるとこうなる
Pythonのラムダ式と条件分岐を組み合わせると、短くて読みやすいコードが書けます。ただし、コードの可読性を損なわないように、簡単な条件分岐に絞って使うのがポイントです。特に初心者は、まず通常のif文で条件分岐の仕組みを理解してからラムダ式を使うと、理解がスムーズになります。