見出し画像

One Point of Python “lambda 式”

Python の初心者向けに、知っておけば得するちょっとした豆知識を提供したい。今回は、“lambda式”について取り上げる。

lambda式は関数オブジェクトを作成する手段で無名関数とも呼ばれる。
lambda式は、以下に示すようにdef文を用いずに“式”で定義され、コードを短く記述できる。

>>> def f(x,y,z):
...    return x*y*z
... 
>>> f(1,2,3)
6
>>> f = lambda x,y,z: x*y*z
>>> f(1,2,3)
6

また、以下のように引数のデフォルト値を設定することもできる。

>>> f = lambda a='li', b='nu', c='x': a+b+c
>>> f()
'linux'
>>> f('u','ni')
'unix'

何が便利なのか? 一度しか使わないような関数やdef文が使えない箇所で使えるメリットがある。例えば、リストのリテラルの中にlambda式を書くこともできる。

>>> l = [(lambda x: x-2), (lambda x: x), (lambda x: x+2)]
>>> for f in l: print(f(10))
... 
8
10
12
>>> l[2](20)
22

同様に、辞書でも使うことができる。

>>> table = {'one': lambda x: x+1,
...          'two': lambda x: x+2,
...          'three': lambda x: x+3}
>>> table['three'](10)
13

元々Pythonの文は大抵は同値な論理式に書くことができるので、lambda式で記述できないことはない。意識的に使う場合は別だが、理解しにくいコードになるので程々の範囲での利用が賢明である。

#ビジネス #プログラミング #Python #線形代数 #数学 #AI #IT


この記事が気に入ったらサポートをしてみませんか?