lambda 式の基本

呼称: lambda 式
目的: コードの凝縮、簡潔化
特徴: 名前なし関数オブジェクト、あくまで「式」、無理に多用しない
用例: コールバック関数、ジャンプテーブル、関数の引数
備考: Lisp からの機能取り込み?
サンプル:

  • 凡例
>>> def greeting():
...     prefix = 'good'
...     talk = (lambda tense: prefix + ' ' + tense)
...     return talk
...
>>> say_greeting = greeting()
>>> say_greeting('evening')
'good evening'
  • ディクショナリを用いたジャンプテーブル
>>> d = {'number': (lambda x: x),
...      'square': (lambda x: x**2),
...      'cube'  : (lambda x: x**3)}
>>> d['square'](3)
9
>>> upper = (lambda x, y: (((x > y) and [x]) or [y])[0])
>>> upper(33, 55)
55
>>> upper(88, 55)
88
>>> upper(None, 55)
55
  • map()関数の引数
>>> l = [1, 2, 3]
>>> map((lambda x: x**2), l)
[1, 4, 9]