背景
今回は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!!