【初心者向け】Python 無名関数(ラムダ式)とは?lambda を理解しよう!

無名関数とは

無名関数とは、名前の通り名前のない関数のことです。匿名関数とも読んだりします。

無名関数の利用シーンは、関数の名前をつける必要がない一行で終わるような関数を作る場合に利用します。

無名関数を作るには、lambdaという書式を用います。(ラムダ式)lambdaはラムダと読みます。

以下構文です。

変数 = lambda 引数1, 引数2 : 式

それでは無名関数のサンプルプログラムを書いてみましょう。

# iを2倍にする無名関数
sample = lambda i: i * 2
print(sample(10))
print(sample(100))

出力結果

20
200

上記のsampleというのは変数です。i*2の結果が、変数sampleに代入されています。上記の無名関数をdefを用いて通常通り書くと以下のようになります。

def sample(i):
    return i*2

print(sample(10))

# lambdaを使うことで、関数を非常にシンプルに書くことができるようになります。
# また、引数に関数を渡すような関数を作ることもできます。

def sample(func):
    return func(10)

print(sample(lambda i : i*2))

# lambdaを使うと次のようなコードを1行で書き換えが可能になります。
l = []
for x in range(10):
    l.append(x**2)
print(l)

# lambda適用後
l = list(map(lambda x: x**2, range(10)))
print(l)

出力結果

20
20
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

より詳細に、無名関数を用いたサンプルプログラムや実務での実用例を知りたい方は、Python プログラミング中級編の「無名関数(ラムダ式)」を参考してみてください。

今回の記事で紹介した以外の無名関数の利用シーンに関しても解説しております。

おわりに

この記事では、無名関数に関して学びました。

Pythonプログラミングを学び始めたうちはほとんど無名関数を用いることはありませんが、ある程度Pythonを使う機会が増えたり、業務ではデータの前処理等において用いることが多くなります。

無名関数は使えると便利な構文ですので、使いこなせるようにしておくと良いでしょう。

Pythonを効率よく学ぶには、現役のデータサイエンティストや機械学習エンジニアに質問し放題かつ、体系的に学べる動画コンテンツでデータ分析技術を学びたい方は、オンラインで好きな時間に勉強できるAI Academy Bootcampがオススメです。