Pythonのmap関数について調べてみた
auです。
Pythonにmap関数があるのですが、JavaScriptと同じ感じで使おうとしたら少しだけ違ったのでまとめてみようと思います。
JavaScriptの記事はこちら
program-shoshinsya.hatenablog.com
Pythonのmapとは
そもそもmapとは、高階関数の一つです。
高階関数は、簡単にいうと引数の中に関数を受け取る物を指します。mapの他にfilterが有名です。
mapは以下のように使います。
map(関数, object)
高階関数なので、第1引数に関数を渡しています。第2引数には、利用する値を渡します。
list_object = list(range(10)) map_list = map(lambda x: x**2, list_object) print(list(map_list))
list_object = list(range(10))
0~9のリストを作っています。
map_list = map(lambda x: x**2, list_object)
list_objectに対して、二乗するmap処理をしています。
lambdaを使うと、無名関数を宣言することができます。関数名を宣言するとしたら以下のようにします。
def squared(x): return x**2 map_list = map(squared, list_object)
print(list(map_list))
mapはリストを返している訳ではないため、listでキャストします。
printするとオブジェクトの値を表示するだけなので、ちゃんとキャストしましょう。
mapを使わなくとも、同じような処理は書くことができます。しかし、行数を節約し、可読性が上がる点で優れていると思います。