Pythonのラムダ式(lambda式)は、「無名関数」とも呼ばれる、関数名を持たない関数を簡潔に定義できる構文です。通常の関数(def文)と比べて、短く一行で書けるため、ちょっとした処理や一時的な関数が必要な場面で活用されます。
ラムダ式(lambda式)とは、名前を持たない関数(無名関数、匿名関数)を簡潔に定義するための構文です。通常の関数は def
キーワードを使って名前付きで定義しますが、ラムダ式は関数名を付けずに一時的な処理や短い処理をその場で記述したいときに利用されます。
ラムダ式は、無名関数(名前を持たない関数)を簡単に作成するためのシンタックスです。
Pythonでは、関数を他の関数の引数として渡すことがよくあります。ラムダ式は、そのような場面で「わざわざ関数名を付けるほどではない」小さな処理を簡潔に記述できるのが特徴です。
lambda 引数1, 引数2, ...: 式
lambda
:キーワード引数1, 引数2, ...
:関数の引数(カンマ区切りで複数指定可)式
:返したい値を計算する式(1つのみ記述可能)例:
add = lambda x, y: x + y
print(add(3, 5)) # 出力: 8
この例では、x
とy
を受け取り、その和を返す無名関数を定義しています。
特徴
主な使いどころ
map()
、filter()
、sorted()
など、関数を引数に取る場面1. map関数との組み合わせ
a = [1, 2, 3, 4, 5]
squared = list(map(lambda x: x * x, a))
print(squared) # [1, 4, 9, 16, 25]
リストの各要素を2乗する処理を簡潔に書けます。
2. filter関数との組み合わせ
nums = [0, 1, 2, 3, 4, 5]
evens = list(filter(lambda x: x % 2 == 0, nums))
print(evens) # [0, 2, 4]
偶数だけを抽出する場合に便利です。
3. sorted関数との組み合わせ
words = ['apple', 'banana', 'cherry']
sorted_words = sorted(words, key=lambda x: len(x))
print(sorted_words) # ['apple', 'banana', 'cherry']
要素の長さでソートするなど、カスタムなソート条件を簡単に指定できます。
特徴 | ラムダ式(lambda) | 通常の関数(def) |
---|---|---|
名前 | なし(無名) | あり(関数名を付ける) |
本体 | 1つの式のみ | 複数の文が書ける |
用途 | 一時的・簡単な処理 | 複雑・再利用する処理 |
可読性 | シンプルだが複雑だと低下 | わかりやすい |
Pythonのラムダ式は、簡潔な無名関数をその場で定義できる便利な機能です。主にmap、filter、sortedなどの関数と組み合わせて使うことで、コードを短く、読みやすくできます。ただし、複雑な処理や再利用性のある処理にはdef文を使い、可読性とメンテナンス性を意識して使い分けましょう。