IT・WEB・ゲーム業界の転職に強いR-Stone

転職コラム

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

Pythonプログラミングでコードを簡潔に書くための強力な記法がlambda(ラムダ)です。1行で関数を定義できる特徴があり、メモリ効率も優れています。

lambdaはデータ処理やGUI開発など、さまざまな場面で活用できます。

本記事では、lambdaの基本構文から実践的な使用方法まで、具体的なコード例を交えながら初心者にも分かりやすく解説します。本記事を読めば、効率的なコーディングのテクニックが身につくはずです。

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 +# 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の基本を押さえて、コードをよりシンプルに書いてみましょう。