\

Pythonのmap関数は、リストやタプルなどのイテラブルなオブジェクトの各要素に対して関数を適用し、その結果を新しいイテレータとして生成します。

引数が1つの場合

たとえば、リスト内の数字を全て2乗にしたいときは次のように書けます。

def square(x):
    return x**2

test = [1,2,3,4,5]
test_result = map(square, test)
print(list(test_result))  # [1,4,9,16,25]

引数が複数の場合

複数引数をとる関数にmapを適用させたいときとかあると思います。その時は以下のように書けます。

def matmul(x, y):
    return x*y

test1 = [1,2,3,4,5]
test2 = [3,4,5,6,7]
test_result = map(matmul, test1, test2)
print(list(test_result))  # [3,8,15,24,35]

mapとリスト内法表記のスピード比較

mapとリスト内法表記のスピードを比べてみました。

def mutmal(x,y):
    return x*y

a = range(100000)
sum_time = 0
for k in range(10):
    start = time.time()
    b = map(mutmal, a,a)
    c = list(b)
    sum_time += time.time() - start
print(c[:5])  # [1,4,9,16,25]
print("finish in {}s".format(sum_time/10))  # 0.014s

結果としてはあまり変わらないですね。

以上、Pythonのmap関数とその引数についての解説でした。この記事がPythonのmap関数を理解するのに役立つことを願っています。

投稿者 admin

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です