注目キーワード

【Python】簡素に記述するためにlambda(ラムダ式、無名関数)を使う

pandasのDataFrameやpython標準のlist・dictなど、様々なデータを処理する際には適切に関数を定義して適用します。こちらの記事では、いろんな場面で使われるlambda(ラムダ式)を説明します。

lambda(ラムダ)式の動作を確認する

通常このような使い方は特に推奨されていませんが、足し算を行う関数の代わりにラムダ式を使って動作を確認してみます。

サンプルソース

サンプルの実装です。どちらも2つの引数a, bを受け取り、和a + bを計算して返します。

実行結果

実行結果です。期待通りに動作しています。

データの処理にlambda(ラムダ)式を用いる

lambda 自体はいろんな場所で使うことができますが、よく使う場面といえばデータの処理を行う条件式を書く場面だと思います。これはラムダ式を使わず内包表記を使って書くことができる場合もあります。両方を例を並べて見てみます。

サンプルソース

サンプルの実装です。

  • データ(ペアのリスト)を用意しました。
  • 1つ目はソートの例です。
    • sorted() を使うことで、リストをソートして新しいリストを得ることができます。
    • 1つ目の例では、ペアの0番目の数値(前側)を使ってソートします。
    • 2つ目の例では、ペアの1番目の数値(後ろ側)を使ってソートします。
  • 2つ目はフィルターの例です。
    • フィルターは条件式が真になるデータのみを抽出します。
    • ここでは条件式として、ペアの0番目(前側)の数値が偶数であることを書きました。
    • 1つ目の例では、lambda式とfilter関数を使って書いています。
    • 2つ目の例では、リストの内包表記を使って書いています。

実行結果

実行結果です。2つのソート順の違い、そして同じ結果が得られたフィルターと内包表記の例が確認できました。

最初にも書いたとおり、lambda式はいろいろな場所で見られます。これまで説明した例としても、例えばpandasのDataFrameの処理と一緒に使う例も多数あります。場合によっては便利に使える記法ですので、一度動作を確認してみてくださいね。

スポンサーリンク