← トップ
7 / 10

7. lambda(1行関数)

CONCEPT

lambdaラムダ — 名前なしの小さな関数 は名前のない小さな関数を1行で作る書き方です。「ラムダ」と読みます。簡単な処理をその場で書きたいときに使います。

📍 使い道: ソート時の「並び替えキー」を1行で指定
COMMON MISTAKES — よくある間違い
lambda に複数行を書くlambda は1行の式だけです。複数行の処理は def で通常関数を定義しましょう。
lambda に名前を付けるf = lambda x: x+1 は動きますが、def f(x): return x+1 の方がPythonicです。lambda は名前なしで使うのが基本。
コードを1行ずつ実行してみよう
example.pyPython
1double = lambda x: x * 2# lambda x: x * 2 を double に代入
2result = double(5)# double(5) → 5 * 2 = 10 を result に代入
3print(result)# result を表示 → 10
« 次の行 » ボタンを押して実行を開始
VARIABLES
実行すると変数の状態が表示されます
lambdaは「名前のない1行関数」です。 lambda x: x * 2 は def double(x): return x * 2 と同じ。 短い処理をその場で書きたい時に使います。
📚 読み方ガイド
コード読み方
lambda x: x * 2xを受け取って x*2 を返す小さな関数
sort(key=lambda s: s["score"])並べ替えの基準をscoreに指定
map(lambda x: x * 2, list)全要素に x*2 を適用
filter(lambda x: x > 0, list)正の数だけを絞り込む
KEY POINT

lambdaラムダ — 名前なしの小さな関数lambda 引数: 戻り値 の形で書く。return は書かない(: の右が戻り値)。複雑な処理には向かないので、その場合は def を使う。

確認問題
1次の lambda と同じ処理を def で書いて
add = lambda a, b: a + b
def add(a, b):\n return a + b\n\nlambdaラムダ — 名前なしの小さな関数 は名前のない関数ですが、def で名前付き関数として定義することもできます。
2次のコードの結果は?
words = ["banana", "apple", "cherry"] words.sort(key=lambda w: len(w)) print(words)
['apple', 'banana', 'cherry'] です。len(w) で文字数を基準に並べ替えます。apple(5), banana(6), cherry(6) の順になります。
3lambda x: x > 0 は何をする lambda?
positive = lambda x: x > 0 print(positive(5)) # ? print(positive(-3)) # ?
x が正の数かどうかを判定する lambda です。positive(5) は True、positive(-3) は False を返します。
CHEAT SHEET — まとめ
3行で分かる
  • 名前なしの小さな関数を1行で作る書き方
  • lambda 引数: 式 の形で定義
  • sorted等の「一時的な関数」を渡す時に便利
ラムダ