Pythonのlambdaとは?基本構文や使い方、応用例などをご紹介

Pythonプログラミングでコードを簡潔に書くための強力な記法がlambda(ラムダ)です。1行で関数を定義できる特徴があり、メモリ効率も優れています。
lambdaはデータ処理やGUI開発など、さまざまな場面で活用できます。
本記事では、lambdaの基本構文から実践的な使用方法まで、具体的なコード例を交えながら初心者にも分かりやすく解説します。本記事を読めば、効率的なコーディングのテクニックが身につくはずです。
Contents
Pythonのlambdaとは?
Pythonのlambda(ラムダ)は、名前を持たない小さな関数を作成する機能です。通常の関数定義(def文)と異なり、1行で簡潔に関数を定義できます。
defを使うと関数に名前を付けて再利用できますが、lambdaは一時的な使用に適しています。
lambdaの魅力
lambdaの大きな魅力は、コードをシンプルに書けることです。1行で関数を定義できるため、プログラムの可読性が高まります。
また、関数型プログラミングの手法を活用できる点も大きな特徴です。sorted()やfilter()、map()などの組み込み関数と組み合わせることで、データの処理を効率的におこなえます。
メモリ効率も優れています。一時的な処理に使用するため、プログラムのメモリ使用量を抑えられます。コールバック関数として利用する場合にも便利で、必要な時だけ関数を作成して使用できます。
lambdaの基本構文
Pythonのlambdaは、1行で書ける小さな無名関数を作成する機能です。基本構文は以下のようになります。
lambda 引数: 式 # 引数を受け取り、式の結果を返す
lambdaの特徴は、通常の関数と異なり名前を持たない点です。
また、lambdaは変数に代入できます。
# 例: 変数 double に lambdaを代入して使用
double = lambda x: x * 2 # xを受け取り2倍して返す
result = double(5) # 結果は10
lambdaは複数の引数も使用できます。
add = lambda a, b: a + b # 2つの引数の和を返す
result = add(3, 4) # 結果は7
lambdaは単純な計算や変換処理など、1行で表現できる処理に使用するのが適切です。
lambdaの基本的な使い方
lambdaは主に変数への代入や、関数の引数として利用されます。また、リスト内包表記でも活用できます。基本的な使い方を見ていきましょう。
sorted()の並べ替え条件に使用する
sorted関数とlambdaを組み合わせると、複雑な条件でリストを並び替えられます。
# 例: 辞書のリストを特定のキーで並び替え
users = [{‘name’: ‘真田幸村’, ‘age’: 30}, {‘name’: ‘筧十蔵’, ‘age’: 25}]
sorted_users = sorted(users, key=lambda x: x[‘age’]) # age でソート
print(sorted_users)
# [{‘name’: ‘筧十蔵’, ‘age’: 25}, {‘name’: ‘真田幸村’, ‘age’: 30}]
複数の条件でソートする場合は、タプルを返すlambda式を使います。
# 例: 年齢の昇順、名前の字数降順でソート
sorted_users = sorted(users, key=lambda x: (x[‘age’], –len(x[‘name’])))
filter() と lambdaを組み合わせる場合
filter関数は、イテラブルな要素から条件に合う要素だけを抽出します。
lambdaと組み合わせると、柔軟な条件指定が可能になります。
# 例: 数値のリストから偶数だけを抽出
numbers = [1, 2, 3, 4, 5, 6]
even_numbers = list(filter(lambda x: x % 2 == 0, numbers))
print(even_numbers) # [2, 4, 6]
map() と lambdaを組み合わせる場合
map関数は、イテラブルの各要素に対して同じ処理を適用します。
lambdaと組み合わせると、要素ごとの変換を簡潔に記述できます。
# 例: 数値のリストの各要素を2倍にする
numbers = [1, 2, 3, 4, 5]
doubled = list(map(lambda x: x * 2, numbers)) # [2, 4, 6, 8, 10]
複数の引数を持つlambdaも利用可能です。
list1 = [1, 2, 3]
list2 = [10, 20, 30]
summed = list(map(lambda x, y: x + y, list1, list2)) # [11, 22, 33]
lamdaの活用場面・応用例
lambdaは、データ分析や機械学習、GUI開発など幅広い場面で活用できます。
データ分析ライブラリのPandasやNumPyでは、データの加工や変換にlambdaを利用できます。
# 例: データフレームの’売上’列を加工して’税込金額’を求める
df[‘税込金額’] = df[‘売上’].apply(lambda x: x * 1.1)
GUIアプリケーション開発でもlambdaは重宝します。Tkinterなどのライブラリでボタンクリック時のコールバック処理を定義する際、lambdaを使うとコードがすっきりします。
# ボタンクリック時の処理をlambdaで定義
button = Button(root, text=“実行”, command=lambda: print(“クリックされました”))
数学的な関数は、lambdaを使うと簡潔に定義できます。例えば、二次関数や指数関数などを1行で表現できます。
quadratic = lambda x: x**2 + 2*x + 3 # 二次関数の例
exp_lambda = lambda x: math.exp(x) # 指数関数の例
まとめ
Pythonのlambdaは1行で書ける無名関数です。
sorted()やfilter()、map()との組み合わせだけでなく、データ分析やGUI開発など、幅広い場面で活用できる便利な機能です。
lambdaの基本を押さえて、コードをよりシンプルに書いてみましょう。