Python Lambda 関数: 匿名関数ガイド
Python で匿名ラムダ関数を作成する方法を学びます。ラムダ構文でmap()、filter()、sorted()を使用して関数型プログラミングのパターンをマスターします。
概要
Python では、匿名関数としても知られるラムダ関数は、標準の `def` キーワードや正式な名前を必要としない、小さくて速い 1 行の関数です。これらは一時的で迅速な使用を目的としており、関数ロジックを引数としてインラインで直接渡すことができます。これにより、コードがよりコンパクトになり、1 か所でのみ呼び出される本格的なヘルパー関数を作成するオーバーヘッドが軽減されます。
ラムダ関数の構文は「ラムダ引数: 式」という単純なものです。標準関数とは異なり、ラムダには明示的な `return` ステートメントがありません。式は自動的に評価されて返されます。さらに、ラムダ関数は単一の式に制限されているため、複雑な複数行のループ、代入、条件ブロックをラムダ関数内に記述することができず、クリーンで関数的なアプローチが強制されます。
Lambda 関数は、一般に、「map()」 (リスト内のすべての項目に関数を適用する)、「filter()」 (条件に一致する項目を保持する)、「sorted()」 (カスタムソートキーを使用して項目をソートする) などの組み込みの高階関数と組み合わせて使用されます。たとえば、ラムダを並べ替えキーとして使用すると、特定の辞書キーで辞書のリストを簡単に並べ替えることができます。ラムダ関数を理解すると、きれいな Python コードを作成するための重要なツールが得られます。
コードと実行の出力
インライン匿名関数を使用した複雑な辞書リストの並べ替えとデータセットのフィルタリング。
# Sorting using lambda
students = [
{"name": "Alice", "grade": 88},
{"name": "Bob", "grade": 95},
{"name": "Charlie", "grade": 90}
]
# Sort students by grade (descending)
sorted_students = sorted(students, key=lambda s: s["grade"], reverse=True)
print("Sorted students by grade:")
for student in sorted_students:
print(f"- {student['name']}: {student['grade']}")
# Filtering using lambda
numbers = [1, 2, 3, 4, 5, 6, 7, 8]
odd_numbers = list(filter(lambda x: x % 2 != 0, numbers))
print(f"\nOdd numbers: {odd_numbers}")Sorted students by grade:
- Bob: 95
- Charlie: 90
- Alice: 88
Odd numbers: [1, 3, 5, 7]段階的な実装
- カスタムの並べ替え基準を list.sort() とsorted() に渡す
- データ サイエンス パイプラインでのインライン変換の適用
- イベント駆動型 UI アプリでのクイック コールバックの定義
よくある質問
ラムダ関数は複数の引数を取ることができますか?
はい、カンマで区切って複数の引数を定義できます (例: lambda x, y: x + y)。
ラムダ関数が匿名と呼ばれるのはなぜですか?
ローカル名前空間に特定の名前を登録する def 関数とは異なり、名前バインディングなしで作成されるためです。
関連トピック
推奨される Python リソース
関連するインタラクティブなチュートリアル、チートシート、コード比較で知識を深めてください。
Python で Lambda 関数を使用する方法
Python でラムダ関数を使用する方法を学びます。匿名関数、インライン コールバック、ラムダ キーを使用したリスト データの並べ替えをマスターします。
Python 文字列メソッドのチートシート
Python 文字列操作の完全なリファレンス ガイド。文字列プロパティの書式設定、検索、分割、置換、チェックをマスターします。
Python と JavaScript: どちらのプログラミング言語が最適ですか?
Python と JavaScript の包括的な比較。構文の違い、パフォーマンス、使用例 (バックエンドとフロントエンド)、およびコーディング例を調べます。