4267000_s


本記事では、pythonのmap関数の使い方を紹介していきます。




map関数とは


map関数とは配列などのイテラブルのすべての要素にアクセスし、関数を適応させることが可能にすることができる関数です。

ちなみにイテラブルとはlist、dict、strなどのfor文の後のinの部分に入れることができる要素のことです。

for i in イテラブル:


map関数を使うことで、for文などの繰り返し処理を使わずともすべての要素にアクセスすることができます。

そのためソースコードがシンプルになりfor文を使う場合よりも可読性があがります。



map関数の使い方


for文を使ってリストのすべての要素に対して、関数を適応させる場合、以下のように書くことができます。

def calcDouble(num):
return num*2

if __name__ == "__main__":
nums1 = [1, 2, 3, 4]
nums2 = []
for i in nums1:
nums2.append(calcDouble(i))
print(nums2)


上記と同じ処理をmap関数を使用して書くと以下のようになります。

def calcDouble(num):
return num*2

if __name__ == "__main__":
nums = [1, 2, 3, 4]
nums = list(map(calcDouble, nums))

print(nums)


for文を使った場合と比べるとかなりシンプルになったのが分かりますね。

また、for文では条件ミスのエラーがよく起こるため、そうしたミスを減らすのにもmap関数は有用です。





dictに対してmap関数を使う


map関数は、イテラブルのすべての要素にアクセスできると最初に紹介したので、以下でdictに対してmap関数を適用させるコードを紹介します。

ソースコード


def outputKey(dictType):
print(dictType[0]*dictType[1])

if __name__ == "__main__":
test = {"list": 2, "dict": 3, "map": 4}
list(map(outputKey, test.items()))


出力結果


listlist
dictdictdict
mapmapmapmap



キーの文字列を値の回数表示させるという単純なコードですが、dictに対してもmap関数がしようできるということが分かりましたか。



まとめ


map関数は配列などのイテラブルのすべての要素に対して関数を適応させたいときに有効であることが分かりました。

また、map関数はlambdaと組み合わせることでコードをさらにシンプルにさせることが可能です。

labbdaの使い方については以下で紹介しているので興味のある方は読んで見てください。