09/07/26 10:32:17
>>208
それは >>206 とはちょっと違う話で、少しでも複雑な関数を作るときは
ちゃんと名前を付けましょうねという意味で、lambda が単文しか実行
できなくなってる。
map + lambda が推奨されないのは、
1) 単純に map(lambda x: と書くタイプ数 が for x に削減される
2) map はリストが不要なときも一時リストを生成してしまう。
(>>206ではリストが必要だったけど、必要ないときはジェネレータ内包が使える)
3) map 内で繰り返し関数呼び出しが発生する。内包だと式の評価なので lambda より速い
4) Lisp脳ではない人間にとっては、 map(lambda x: を読むときに頭の中で分解再構築が必要になる。
内包表記の方がやりたいことをすっきりと書き下せる。