Pythonでは、lambda
式を使って簡単な関数を定義することができます。lambda
式は、無名関数(名前のない関数)を作るための特別な構文です。ここでは、lambda
式を使った簡単な関数の定義とその活用方法について学びましょう。
まず、lambda
式の基本的な構文を見てみましょう。
lambda 引数: 式
この構文では、引数
に対して式
を評価し、その結果を返します。以下は、lambda
式を使った単純な関数の例です。
# 2つの数を足し合わせる無名関数
add = lambda x, y: x + y
# 使用例
result = add(5, 3)
print(result) # 出力: 8
この例では、lambda
式を使って2つの引数x
とy
を受け取り、その合計を計算する無名関数を定義しています。
lambda
式は、特に関数を引数として受け取る場面で便利です。ここでは、いくつかの例を見ていきます。
lambda
式を使って、リストの要素を特定の条件でソートすることができます。
# 文字列のリスト
words = ["banana", "apple", "cherry", "date"]
# 単語の長さでソート
sorted_words = sorted(words, key=lambda word: len(word))
print(sorted_words) # 出力: ['date', 'apple', 'banana', 'cherry']
この例では、sorted()
関数にkey
引数を指定し、lambda
式を使って各単語の長さに基づいてリストをソートしています。
filter()
関数と組み合わせて、特定の条件を満たす要素だけを抽出することもできます。
# 数値のリスト
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
# 偶数だけを抽出
even_numbers = list(filter(lambda x: x % 2 == 0, numbers))
print(even_numbers) # 出力: [2, 4, 6, 8, 10]
この例では、filter()
関数を使って、lambda
式で指定した条件(偶数かどうか)を満たす数値だけを抽出しています。
map()
関数と組み合わせて、リストの各要素に対して変換を行うこともできます。
# 数値のリスト
numbers = [1, 2, 3, 4, 5]
# 各数の二乗を計算
squared_numbers = list(map(lambda x: x ** 2, numbers))
print(squared_numbers) # 出力: [1, 4, 9, 16, 25]
この例では、map()
関数を使って、各数値を二乗する処理をlambda
式で定義しています。
lambda
式を使うことで、短く簡潔に関数を定義することができます。特に、他の関数と組み合わせて使うことで、コードをより読みやすく、効率的にすることができます。今回学んだ内容を活用して、実際のプログラミングでlambda
式を使ってみてください。