Edited at

map関数、無名関数lambdaしっかり理解!!!


背景

今回はcsvファイルからデータを取得しリストに格納しようとした時に、

lines = map(lambda v: v.replace('/',','), lines)

このようなコードを使い「/」と「,」の変換を行いました。

よく使っているのですが正直、map関数、lambdaが何をしているのか良く分かっていない自分がいたので勉強した結果をアウトプットして頭に擦り込んでいきます!!


map関数って?

map関数は配列、リストの全ての要素にアクセスできる関数です。

文法的には以下のような引数を用います。

map(関数,リスト)

ここでの関数とはリストに対して何かしらの動作を行う関数で出力はリストの全要素に対してこの関数をかけたものになります!!


lambda

lambdaとは無名関数のことです。defでよく関数を定義しますが、このlambdaを使えば簡易的な関数は名前を定義せずに使用することができます。

lambda 入力:出力

このように書きます。

(何回も使う関数の場合はdefで定義した方が良さそうです。。)


具体例を見ていきます。

ex.)map(lambda a:a+1,lines)

これはリストであるlinesの要素一つ一つがaに代入されそのaに+1されることになります。


まとめ

map関数、無名関数lambda、理解できましたか!!

have a good day!!