[Python]ラムダ関数を使ってみる
Pythonのラムダ関数について、その定義と使い方を紹介していきます。
Pythonのラムダ関数、一言で言うと…
Pythonにおいてラムダ関数は一文で表現できる無名関数を指します。
例えば、名前を入力するシステムがあったとします。(Mike,Bobなど)
しかし、ユーザーによってはmikeやbobと入力し、こちらとしては「名前の先頭文字は大文字で入力してほしいのにな・・・」とします。
そこで引数の先頭文字列をcapitalizeする関数を作り、それをそのまま引数に渡します。
name = ['Mike', 'mary', 'bob']
def change_name(names, func):
for name in names:
print(func(name))
def name_func(name):
return name.capitalize()
change_name(name, name_func)
Mike
Mary
Bob
ラムダ関数を使えばより簡潔に記述できる
求められている要件(名前の先頭文字を大文字で統一する)は達成しました。
しかし、name_func関数の処理は非常にシンプルでわざわざ関数定義するのも冗長ですよね。
そこでラムダ関数を使って書いてみます。
names = ['bob', 'mary']
def change_name(names, func):
for name in names:
print(func(name)) change_name(names, lambda name: name.capitalize())
ラムダの書き方は、
lambda 引数: 処理
という書き方になります。