ラムダ式
名前のない関数を作るための簡潔な構文。
ラムダ式
名前のない関数。一度きりの使用に適している。
無名関数
名前のない関数。ラムダ式とも呼ばれる。
式
値を返すコードの一部。
高階関数
関数を引数として受け取る関数。
map
リストの各要素に関数を適用する。
filter
条件を満たす要素のみを残す。
ラムダ式の基本
なぜラムダ式が必要か?
ラムダ式は、簡潔なコードを書くのに適しています。特に、高階関数やコールバックで使用する場合に有効です。
いつ使うか?
- 一度きりの使用の場合
- 高階関数で使用する場合
- コールバックで使用する場合
- 簡潔なコードを書く場合
実践テクニック
引数の数を理解する
ラムダ式は、複数の引数を受け取ることができます。`lambda x, y: x + y`のように使用します。
式の制限を理解する
ラムダ式は、単一の式しか含めません。複数の文を書く場合は、defを使う必要があります。
# ラムダ式の基本# 基本的なラムダ式add = lambda x, y: x + yprint(add(3, 5)) # 8
# 単一引数のラムダ式square = lambda x: x ** 2print(square(4)) # 16
# 引数なしのラムダ式greet = lambda: "Hello!"print(greet()) # Hello!使用例
ラムダ式の実際の使用例を確認する。
# ラムダ式の使用例
# 高階関数def apply_operation(func, x, y): return func(x, y)
result = apply_operation(lambda x, y: x + y, 3, 5)print(result) # 8
# ソートstudents = [("Alice", 85), ("Bob", 92), ("Charlie", 78)]sorted_students = sorted(students, key=lambda student: student[1])print(sorted_students) # [("Charlie", 78), ("Alice", 85), ("Bob", 92)]
# フィルタnumbers = [1, 2, 3, 4, 5, 6]even_numbers = list(filter(lambda x: x % 2 == 0, numbers))print(even_numbers) # [2, 4, 6]
# マップnumbers = [1, 2, 3, 4, 5]squared_numbers = list(map(lambda x: x ** 2, numbers))print(squared_numbers) # [1, 4, 9, 16, 25]比較
ラムダ式とdefの特徴を比較する。
# ラムダ式とdefの比較
# ラムダ式add_lambda = lambda x, y: x + y
# defで定義def add_def(x, y): return x + y
# 使用例print(add_lambda(3, 5)) # 8print(add_def(3, 5)) # 8合格ライン
ラムダ式を作成できる
ラムダ式を高階関数で使用できる
ラムダ式とdefの違いを理解している
ラムダ式の使い分けができる
演習課題
課題1: ラムダ式の作成
2つの数を足すラムダ式を作成してください。
課題2: 高階関数での使用
高階関数にラムダ式を渡して、計算してください。
課題3: ソートでの使用
ラムダ式を使ってリストをソートしてください。
参考文献
この記事は以下の公的ガイドライン/標準に基づいています。
- Lambda Expressions - 公式ドキュメント
- Functional Programming HOWTO - 公式ドキュメント
- Anonymous Function - Wikipedia