lambdaの最初の一歩

lambdaのイメージがすぐわからなくなってしまうので、一旦整理。

lambda式はdefステートメントと同様、関数(関数オブジェクト)の作成に使用する手段の一つです。
(初めてのPythonの369ページ)

構文: lambda 引数: 式


ということで、
与えられた引数の2倍の値を戻す関数をlambda式とdefステートメントでつくります


①defステートメント

def double(spam):
  return spam * 2


②lambda式

lambda x: x * 2


defステートメントを使って呼び出すときは、関数名に引数を与えれることで戻り値を得ます。

>>> def double(spam):
...   return spam * 2
...
>>> double(2)
4
>>> double(10)
20

lambda式は関数名がないので、呼び出すときは一旦変数に代入してから呼び出すことでdefステートメントと同じような使い方ができます。

>>> lambda x: x * 2
<function <lambda> at 0xb77db56c>
>>> double = lambda x: x*2
>>> double(2)
4
>>> double(8)
16
>>>


自分ではlambda式のイメージが湧いたんですがどうでしょうか?