こんにちは、今日はラムダ式についてまとめました。
使わなくてもコードは書けますが、コードがシンプルになる場合があるので、
覚えておいて損はないです。
また、よく見かける書き方なので、
他人のコードを理解するためにも知っておいたほうがよいでしょう。
理解する手順として、
1.通常の関数を使ったやり方
2.関数部分をラムダ式に置き換えて動きを理解する
3.さらに簡単にする
です。やっていきましょう。
例題として、文字で構成されるリストを用意して、
頭文字を大文字に書き換える関数を作ってみましょう。
通常の関数を使ったやりかた
1 2 3 4 5 6 7 8 9 10 11 12 13 |
#頭文字がcapitalだったりlowerだったりするリスト li=["Aaa","bbb","Ccc","ddd","Eee"] #リストから要素をひとつづつ取り出して、関数funcに従って処理をする。 def one_by_one(words,func): for word in words: print(func(word)) #頭文字がlowerだったらcapitalに変換する関数 def capital_change_func(word): return word.capitalize() one_by_one(li,capital_change_func)#このとき渡す関数には()をつけない。 |
ラムダ式でコードをシンプルにする
1 2 3 4 5 6 7 8 9 10 11 12 |
#頭文字がcapitalだったりlowerだったりするリスト li=["Aaa","bbb","Ccc","ddd","Eee"] #リストから要素をひとつづつ取り出して、関数funcに従って処理をする。 def one_by_one(words,func): for word in words: print(func(word)) #関数と全く同じ意味 capital_change_func=lambda word:word.capitalize() one_by_one(li,capital_change_func) |
さらにシンプルにする
1 2 3 4 5 6 7 8 9 10 |
#頭文字がcapitalだったりlowerだったりするリスト li=["Aaa","bbb","Ccc","ddd","Eee"] #リストから要素をひとつづつ取り出して、関数funcに従って処理をする。 def one_by_one(words,func): for word in words: print(func(word)) #直接 引数に書いてしまってもいい。おすすめ。 one_by_one(li,lambda word:word.capitalize()) |
The following two tabs change content below.
Keita N
最新記事 by Keita N (全て見る)
- Freenove ESP32-WROVER Board CAMを購入しました。その2 - 2023年11月4日
- Freenove ESP32-WROVER Board CAMを購入しました。 - 2023年11月4日
- ANOGAN 第一話 - 2023年6月16日