Help us understand the problem. What is going on with this article?

【Python】ラムダ式の書き方・覚え方

More than 1 year has passed since last update.

最初に

この記事は私流のラムダ式の書き方・覚え方について簡単にまとめています。
想定している読者層は、以下の通りです。
・Python始めたけどラムダ式の書き方がよくわからない
・ラムダ式の書き方をちゃんと覚えたい
・数学かじっててf(x)という関数の表記を知っている

ラムダ式とは

ラムダ式は関数を簡潔に宣言するための記法です。
例えば

func.py
def func(a,b):
    return a*b

というコードを

lambda.py
lambda a,b: a*b

というように記述することができます。lambda(ラムダ)を使う式だから、ラムダ式というわけですね。
また、ラムダ式を用いた記法の場合、func.pyのようにdefを用いて名前を付けるといったことをせずに関数を宣言できます。
このことから、ラムダ式によって記述される関数は無名関数と言われます。

ラムダ式の書き方・覚え方

それでは、簡単な無名関数をラムダ式を用いて記述してみます。
ここでは、次のような数学界の関数を考えてみます。

f(x) = 2x

これは見ての通りxに代入した数を二倍にして返す関数です。
ラムダ式で記述すると以下のようになります。

lambda.py
lambda x: 2*x

このラムダ式を先ほどのf(x)を用いて書かれた関数と比較してみると、次のような関係があります。

図1.png

f(x) が lambda xに、=が:に、2xが2*xに、それぞれ対応しているのがわかります。
ラムダ式に中々馴染めないときは、このように数学の関数f(x)を定義するつもりでいると、すんなり頭に入ってくるのではないかと思います。

ラムダ式を書く際のフローは以下のようになります。

➀ 関数の処理内容を定める(二倍の値を返す、型変換する、など)

② f(x) = と書く要領で、lambda x: と書く(変数名は適宜変えてください)

③ 定めた処理内容に従ってコードを書く(2*x、str(x)、など)

終わりに

いかがだったでしょうか。
私はラムダ式の記法に中々なれることができず苦労したのですが、数学が好きだったのもあってこのように少しだけ見方を変えることで一気に親しみがわきました。
ラムダ式はfilterやmapといった有名どころの関数を利用する際にかなり役に立つテクニックです。
覚え方には向き不向きがあると思います。
苦手意識のある方は、一例としてこのような考え方を試してみるといいのではないでしょうか。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした