【python】map関数の使い方についてわかりやすく解説!

今回は map 関数という関数について詳しく解説していきます。
map 関数は高階関数といい、目にすることも多いでしょうから map 関数の理解に困っているという人の手助けになれば幸いです。

スポンサーリンク
目次

高階関数とは

map 関数の説明の前に高階関数とは何かについて簡単に解説いたします。

高階関数とは関数を引数に取る関数の事、もしくは関数を戻り値として返却する関数の事です。

例えば、①②③と3つの処理を実施する関数があったとして、②だけ微妙に処理が異なるものが他にもいくつかほしいような状況があったとします。
そんな中②の処理をちょっと変えただけの関数をいくつも用意するのはあほらしいので②の処理を関数として引数に取る①と③の処理を実施する関数を用意し②だけ書かれた関数をいくつか用意して使うみたいなやり方をするときに高階関数は用いられます。

map関数とは

map関数とはシーケンス型のデータに対して、引数に指定した関数の処理を施してくれる関数の事です。
シーケンス型のデータとは例えばリストやタプルなどがあります。

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

map 関数の使い方

次に map 関数の使い方についてお伝えします。
map 関数を使う場合はまず、シーケンスデータに対し処理したいコードが書かれた関数を用意します。

# 値を2倍にする関数
def twice(num):
return 2 * num

そしたらその関数名を使って map 関数の引数にシーケンスデータと一緒に引き渡します。

result = list ( map ( twice , list ) )

実際の使い方については以下のサンプルコードをご確認ください。

map関数はそのままリストを返すのではなく、mapオブジェクトというイテレータを返します。

イテレータとは反復可能オブジェクトといいデータの流れを表現しているオブジェクトのことです。例えば range 関数で得られたオブジェクトなんかがそれにあたります。

今回は map オブジェクトが返ってくるのでリストの値がそれぞれ倍にする処理が施さ多状態のものが得られると思っていただけるといいと思います。

今回は再度リストとしてデータが欲しいのでめ、map関数によって帰ってきたデータ群を”list()”関数で再度リスト化しています。

ラムダ式を使った map 関数

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

因みにラムダ式は以下のような構造になっております。

詳しく知りたいという方は以下の記事をご参照ください。

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

今回はここまでです。

お疲れ様でした。

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

この記事を書いた人

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

コメント

コメントする

目次
閉じる