初めに
Python では、無名関数(匿名関数、lambda関数)と呼ばれる名前のない関数を定義することができます。本記事では、無名関数の定義の仕方や使い方について、まとめます。
無名関数(匿名関数、lambda関数)とは
無名関数(匿名関数、lambda関数)は、通常の関数と同様に動作しますが、名前を持たず、一般的には1行で定義されます。
名前を持たないので、無名関数や匿名関数といわれたり、lambda を使って定義するため lambda 関数と呼ばれたりします。
定義の仕方
lambda 引数: 式
(例)
# lambda関数を使用して2つの引数を足し合わせる例 addition = lambda x, y: x + y result = addition(3, 5) # 結果は8
使うタイミングの例
GUIアプリケーションのイベントハンドラ
ボタンがクリックした場合に実行する関数などで利用することがあります。
import tkinter as tk root = tk.Tk() # ボタンに対するlambda関数の利用例 button = tk.Button(root, text="クリック", command=lambda: print("ボタンがクリックされました")) button.pack() root.mainloop()
リストや辞書のソート
data = [('Alice', 25), ('Bob', 30), ('Charlie', 20)] # 年齢でソート sorted_data = sorted(data, key=lambda x: x[1])
sorted 関数では引数 key を指定することができます。今回は lambda 関数で x[1] が指定されているので、名前ではなく、数値の方をもとにソートされます。
フィルタリング
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9] # 偶数をフィルタリング even_numbers = list(filter(lambda x: x % 2 == 0, numbers))