Pythonのラムダ式で複数の引数を扱う方法を完全解説!初心者向けガイド
先生と生徒の会話形式で理解しよう
生徒
「Pythonのラムダ式で、引数を2つ以上使うことってできますか?」
先生
「はい、もちろんできますよ。ラムダ式は、複数の引数を受け取って計算したり処理したりすることができます。」
生徒
「じゃあ、2つ以上の数字を足したり掛けたりする関数も作れるんですね?」
先生
「その通りです。それでは、Pythonのラムダ式で複数引数を扱う方法を、例を交えて解説していきましょう!」
1. Pythonのラムダ式とは?
Pythonのラムダ式(英語: lambda expression)とは、1行で簡単に書ける関数のことです。通常の関数はdefキーワードを使って定義しますが、ラムダ式を使うと「その場で関数を作って使う」ことができます。
例えば、2つの数を足す普通の関数はこう書きます。
def add(a, b):
return a + b
これをラムダ式で書くと、次のように短くできます。
lambda a, b: a + b
ポイントは、引数をカンマで区切って書くことです。これが複数の引数を扱う基本です。
2. 複数引数のラムダ式の書き方
複数引数を扱う場合、引数を( )で囲む必要はありません。カンマで区切るだけでOKです。
基本構文は次の通りです。
lambda 引数1, 引数2, ... : 処理内容
例えば、3つの引数を足し合わせるラムダ式はこう書けます。
sum_three = lambda x, y, z: x + y + z
print(sum_three(1, 2, 3))
6
ここで、lambda x, y, z: の部分で引数を受け取り、x + y + z がその処理内容になります。
3. ラムダ式で複数引数を使った例
実際に、複数の引数を使った色々なパターンを見てみましょう。
3-1. 掛け算を行うラムダ式
multiply = lambda a, b: a * b
print(multiply(4, 5))
20
3-2. 文字列を結合するラムダ式
concat = lambda first, last: first + " " + last
print(concat("Python", "入門"))
Python 入門
3-3. 条件分岐を組み合わせる
check_age = lambda name, age: f"{name}さんは成人です" if age >= 20 else f"{name}さんは未成年です"
print(check_age("田中", 18))
print(check_age("佐藤", 25))
田中さんは未成年です
佐藤さんは成人です
4. ラムダ式と通常の関数の違い
初心者の方がよく疑問に思うのが「ラムダ式と普通の関数、どっちを使えばいいの?」という点です。
- 短い処理 → ラムダ式がおすすめ
- 複雑で長い処理 → 通常の
def関数がおすすめ
ラムダ式はコードを短く書ける反面、長くなると読みづらくなるので注意が必要です。
5. 実用的な使い方の例
ラムダ式は、リスト操作やデータ処理でもよく使われます。
5-1. リストを並び替える
data = [("apple", 3), ("banana", 1), ("cherry", 2)]
# 2番目の要素(数量)で並び替え
sorted_data = sorted(data, key=lambda item: item[1])
print(sorted_data)
[('banana', 1), ('cherry', 2), ('apple', 3)]
5-2. map関数と組み合わせる
nums1 = [1, 2, 3]
nums2 = [4, 5, 6]
# 対応する要素を足し合わせる
result = list(map(lambda a, b: a + b, nums1, nums2))
print(result)
[5, 7, 9]
6. まとめのポイント
- ラムダ式は
lambda 引数1, 引数2: 処理の形で書く - 複数引数はカンマで区切るだけでOK
- 短く簡単な処理に向いている
- 条件分岐やリスト操作にも応用できる