はじめに
こんにちは。風助です。
今回はPythonのmap関数について書いていきます。
あまり聞きなれない関数ですが、なかなか便利なものです。
map関数とは
map関数はリストなどの反復可能体にまとめて指定した関数を適用できる関数です。
例えば、リストの中身全部の文字型をまとめて変更することもできます。
他にも応用の仕方はいろいろあります。
この投稿を参考にしてもらえると嬉しいです!
map関数の使いかた
では早速使い方について。
書き方は以下のようになります。
map(関数等, 反復可能体)
反復可能体はiterableの事です。つまりリストやタプルなどですね。
このリスト等の中身に関数等をまとめて適用することができます。
それと、引数にはiterableをいくつでも入れることができます。
add関数やmul関数などの2つ以上のiterableを使う関数でもmap関数に組み込めます。
map関数の使い方の具体例を見ていきましょう。
List1 = [1, 2, 3, 4, 5]
List2 = (map(str, List1))
Ans = ''
for num in List2:
Ans = Ans + num
print(Ans)
このときの返り値は「12345」になります。
もともとは数列でしたが、map関数で文字列に変更しました。そのためそれぞれの値の合算が15ではなく12345になりました。
文字型が違うと合算できないので、きちんとすべての要素に変更が適用されていることが分かりますね。
当然ですが、map関数の第一引数には自作した関数を指定することができます。
def文だろうがlambda式だろうが…です。
こんな感じです。
List3 = (map(lambda n: n*2, range(10)))
for N in List4:
print(N)
この時の返り値は「2, 4, 6, 8, 10, 12, 14, 16, 18」となります。
このlambda式のところをdef文で作成した独自関数に置き換えても全然OKです。
それと、map関数でリストを作ることもできます。
List5 = list(map(lambda n: n*2, range(10)))
ただ、リストを作るならmap関数を使うよりリスト内包表記をした方が見やすいと思います。
最後になりましたが、map関数の第一引数は関数だけではなく、クラスなどを入れることも可能です。
つまり、コールできるものなら何でもOKという訳です。
終わりに
今回はmap関数について書きました。
シンプルですけど何かと使えそうです。
皆さんの参考になると幸いです。
コメント
After I originally commented I clicked the -Notify me when new comments are added- checkbox and now every time a comment is added I get four emails with the same comment. Is there any way you can take away me from that service? Thanks!
Generally I do not read article on blogs, but I would like to say that this write-up very forced me to try and do it! Your writing style has been amazed me. Thanks, quite nice post.