⊗pyPmFnLa 16 of 129 menu

Pythonのラムダ関数

リストとコールバックをパラメータとして受け取る関数 func があるとします。 この関数は元のリストの要素から新しいリストを作成します。 その際、各要素にコールバックが適用されます:

def func(lst, callback): res = [] for el in lst: res.append(callback(el)) return res

渡された数値を2乗する関数 square を作成しましょう:

def square(num): return num ** 2

数値のリストとコールバックとして関数 squarefunc のパラメータに渡してみます:

print( func([1, 2, 3], square) )

数値の2乗で構成される新しいリストがコンソールに出力されます:

[1, 4, 9]

しかし、このコードは ラムダ関数 を使用することで大幅に短縮できます。 ラムダ関数は lambda キーワードで呼び出される無名関数で、1行で記述されます。 そのため、コードが1行の関数のみをラムダ関数に書き換えることができます。

ラムダ関数の構文は次のようになります:

lambda 関数のパラメータ: パラメータに対する操作

ラムダ関数を使用して関数 square を書き直し、それを func のパラメータに渡してみましょう:

print( func([1, 2, 3], lambda num: num ** 2) )

ラムダ関数は変数に代入することもできます:

square = lambda num: num ** 2 print( func([1, 2, 3], square) )

次のコードをラムダ関数を使って書き直してください:

def func(num, clb): return clb(num) def clb(num): return num + 1 print( func(2, clb) )

次のコードをラムダ関数を使って書き直してください:

def func(num, clb1, clb2): return (clb1(num), clb2(num)) def clb1(num): return num + 1 def clb2(num): return num - 1 print( func(2, clb1, clb2) )

次のコードをラムダ関数を使って書き直してください:

def func(num1, num2, clb): res = clb(num1) + num2 return res def clb(num): return num ** 3 print(func(2, 6, clb))
日本語
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItalianoქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
当サイトでは、サイトの動作、分析、パーソナライゼーションのためにクッキーを使用しています。 データ処理はプライバシーポリシーに従って行われます。
すべて受け入れる 設定 拒否