【Python 入門】関数⑦-2 ラムダ式を利用した高階関数

前回の内容ではラムダ式な簡単な扱い方について解説いたしました。今回はラムダ式を使って関数そのものを関数の引数として扱う方法について解説いたします。関数を引数に取る関数の事を高階関数とも言ったりします。

高階関数とは

高階関数とは上記でも記載しましたが、関数を引数に取る関数の事です。よく用いられる関数はmap関数等があります。もちろん自分で高階関数を作成することもできますが、内容が複雑になりますので、ここ(入門)では取り上げません。興味がある方は「python 高階関数」で調べてみるとよいでしょう。

map関数について

map関数とはシーケンス型のデータについて引数にした関数に記載された処理を施してくれる関数の事です。例えば、リストの値をすべて2倍にしたいという時、2倍にしてデータを返すという処理を記載した関数を引数に取りmap関数を呼び出せばリストの値をすべて2倍にしてくれます。

map関数はそのままリストを返すのではなく、mapオブジェクトというイテレータを返します。用語はイメージしづらいですが、関数によって処理を施したデータの集合体を返しているようなものだと思ってください。そのため、map関数によって帰ってきたデータ群を”list()”関数で再度リスト化し、それを別の変数に格納しています。

ラムダ式を利用した高階関数

それでは最後にラムダ式を利用してmap関数を使ってみます。上記の内容でラムダ式を使ってみます。

上の内容が最初に記載したものです。下の部分がラムダ式を利用した内容です。だいぶコンパクトにまとまっていますね。前回はラムダ式の内容を一度別の変数に格納しておりましたが、map関数にそのままラムダ式を引数として渡しても問題なく動きます。ただ、読みづらさも考慮すると一度変数に格納してからの方が良いかもしれませんので、その辺りはケースバイケースで実装しましょう。

今回はここまでです。

お疲れ様でした。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

本業ではPHPを使ったWEBアプリやJavaを使用した基幹アプリを作成しております。Pythonは個人的に勉強しており、E資格を取ったりしたおかげで、業務でAIの研究とかも任されるようになりました。学習のアウトプットのために本サイトを運営しておりますが、これからPythonを学ぶという人のお役に立てればいいなと思います。わからないことや調査して記事にしてほしいことがございましたらご連絡いただけると幸いです。

コメント

コメントする

目次
閉じる