<一覧に戻る

Pythonのlambda式の活用方法

前回は、lamda式の使い方を学習しました。今回は、lamda式を使った具体的な使い方をいくつかの事例を踏まえてみていきましょう。

lambda式の基本

まずは、lambda式の書き方を確認しておきましょう。

lambda 引数: 式

この構文は引数を受け取り、その引数を使った式を評価して返すという意味になります。lambda式は1行で書ける関数であり、シンプルな処理を関数として使いたいときに便利です。

例:リストのソートに使う(sort)

lambda式をsorted()と組み合わせると、リストを自由な条件で並び替えることができます。

# 文字列のリスト
words = ["banana", "apple", "cherry", "date"]

# 単語の長さでソート
sorted_words = sorted(words, key=lambda word: len(word))

print(sorted_words)  # 出力: ['date', 'apple', 'banana', 'cherry']

この例ではkey引数にlambda word: len(word)を渡し、各要素の文字数を基準に並び替えています。

もし通常の関数を定義して同じことをする場合、わざわざdef get_length(word): return len(word)のように関数を用意しなければなりませんが、lambda式を使えば一行で済みます。

例:条件に合う要素だけを抽出する(filter)

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]

ここでは lambda x: x % 2 == 0 という条件式を使って、偶数だけを抽出しています。通常ならループを書いて条件分岐を行う必要がありますが、lambda式と filter() を組み合わせることで、短く分かりやすいコードになります。

例.各要素に変換を適用する(map)

map()関数とlambda式を組み合わせると、リストのすべての要素に対して同じ処理を一括で適用できます。

# 数値のリスト
numbers = [1, 2, 3, 4, 5]

# 各数の二乗を計算
squared_numbers = list(map(lambda x: x ** 2, numbers))

print(squared_numbers)  # 出力: [1, 4, 9, 16, 25]

このコードでは、リストの要素それぞれに対して二乗の計算を行っています。 ループを使わなくても、lambda式とmap()を組み合わせることでシンプルに書けるのが魅力です。

まとめ

lambda式はPythonにおける強力なツールで、短いコードで分かりやすい処理を実現できます。

特にデータ処理や関数型プログラミングの場面で頻繁に登場するため、初心者のうちにしっかりと理解しておくと、後々の学習や実務で大いに役立つでしょう。

出力結果: