ラムダ式

名前のない関数を作るための簡潔な構文。

ラムダ式
名前のない関数。一度きりの使用に適している。
無名関数
名前のない関数。ラムダ式とも呼ばれる。
値を返すコードの一部。
高階関数
関数を引数として受け取る関数。
map
リストの各要素に関数を適用する。
filter
条件を満たす要素のみを残す。

ラムダ式の基本

使い捨ての道具

ラムダ式は「使い捨ての道具」ようなもの。一度きりの使用に適しており、名前を付ける必要がありません。これにより、簡潔なコードを書けます。

なぜラムダ式が必要か?

ラムダ式は、簡潔なコードを書くのに適しています。特に、高階関数やコールバックで使用する場合に有効です。

いつ使うか?

  • 一度きりの使用の場合
  • 高階関数で使用する場合
  • コールバックで使用する場合
  • 簡潔なコードを書く場合

実践テクニック

引数の数を理解する

ラムダ式は、複数の引数を受け取ることができます。`lambda x, y: x + y`のように使用します。

式の制限を理解する

ラムダ式は、単一の式しか含めません。複数の文を書く場合は、defを使う必要があります。

Lambda Basics
# ラムダ式の基本
# 基本的なラムダ式
add = lambda x, y: x + y
print(add(3, 5)) # 8
# 単一引数のラムダ式
square = lambda x: x ** 2
print(square(4)) # 16
# 引数なしのラムダ式
greet = lambda: "Hello!"
print(greet()) # Hello!

使用例

ラムダ式の実際の使用例を確認する。

Use Cases
# ラムダ式の使用例
# 高階関数
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の特徴を比較する。

Lambda vs def
# ラムダ式とdefの比較
# ラムダ式
add_lambda = lambda x, y: x + y
# defで定義
def add_def(x, y):
return x + y
# 使用例
print(add_lambda(3, 5)) # 8
print(add_def(3, 5)) # 8

合格ライン

ラムダ式を作成できる
ラムダ式を高階関数で使用できる
ラムダ式とdefの違いを理解している
ラムダ式の使い分けができる

演習課題

課題1: ラムダ式の作成
2つの数を足すラムダ式を作成してください。
課題2: 高階関数での使用
高階関数にラムダ式を渡して、計算してください。
課題3: ソートでの使用
ラムダ式を使ってリストをソートしてください。

参考文献

この記事は以下の公的ガイドライン/標準に基づいています。