Re:ゼロから始める文系プログラマ

未経験がプログラミングを通して人生を変える

【Python】lambdaとmapをそれぞれ徹底解説


スポンサードリンク
 

f:id:ShotaNukumizu_1000:20220104152603p:plain

おはようございます。Shotaです。

今回の記事では、Pythonにおけるlambdamapを徹底解説します。



無名関数lambda

無名関数lambdaは、Pythonで簡単な関数を作る際によく使われます。これを使うだけで、関数を予約語defを使わずによりシンプルに関数を定義できます。

# 通常の関数
def func(val):
    print(f'Hello {val}')

# lambda
func = lambda val: f'Hello {val}'


組み込み関数map

Pythonの組み込み関数mapは、listtupleのような複数の要素を持つデータ型に対して、それぞれの要素に同じような処理を行うための関数です。

mapを使うことで、forを使わずに簡単に複数要素を持つデータ型に対して処理を行えます。


lambdamapの使い方

from math import copysign

values = [-3, 7, 13, 5, -18, 9]

# リストの中の数値と同じ符号で、数値だけを2乗する
values = list(map(lambda x: int(copysign(x**2, x)), values))

print(values)
# 実行結果 -> [-9, 49, 169, 25, -324, 81]


これを普通の関数を使って書くと以下のようになり、少し冗長になってしまいます。


from math import copysign

values = [-3, 7, 13, 5, -18, 9]

def func(n):
    return int(copysign(n**2, n))

values = list(map(func, values))
print(values)

あと、lambdaには名前と得点をtupleとして持っているlistを得点でsortしたいときにも十分に活用できます。

score = [
    ('Ken', 100),
    ('Makoto', 55),
    ('Reina', 71),
    ('Taro', 41),
    ('Takashi', 88)
]

score.sort(key=lambda x: x[1])
print(score)
# 実行結果 -> [('Taro', 41), ('Makoto', 55), ('Reina', 71), ('Takashi', 88), ('Ken', 100)]


まとめ

今回の記事では、lambdamapの使い方をそれぞれ徹底解説しました。

今回の記事を参考にして、lambdamapの使い方を理解してもらえたら幸いです。

今回の記事はこれで終了です。

【参考サイト】

qiita.com

techacademy.jp