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
- if ステートメントの代替
>>> 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]