LoginSignup
1
1

More than 5 years have passed since last update.

python lambda式

Posted at

今更のlambda式

『lambda式』を知ってはいたが、「無名関数を定義できる」としか理解しておらず、
(他の人も言っておりますが)使いどころが良くわからないのもあって
実際に使ったことがなかったのです。

ですが前回書いたCheckiOにてlambda式で書いているものが
ちょっとかっこよく見えたので使ってみようかなと。

書いてみる

とりあえず基本から・・・

test.py

hoge = lambda x : print x*2

hoge(5)

実行すると

File "test.py", line 2
    hoge = (lambda x : print x*2)

失敗するとは思ってなかった。。。

で!

調べてみると↓

lambda式のボディ部分も「式」
return しなくても演算結果が返ってくる。
ステートメントを書くことは出来ない(return,print,if~else~)が、工夫すれば同様のことは出来る。

なるほど。知らなかったよ。

修正

test.py

hoge = lambda x : x*2

print hoge(5)

実行すると

10

成功。よかった。

まとめ・・・の前に

なんでステートメントが書けないのか気になったので調べてみた。
http://docs.python.jp/2/faq/design.html#id6

あくまで「関数の速記法」としての位置付けなので、
式だけ書ければ役割としては十分ということなのですね。

最初に書いた「使いどころが良くわからない」ってことと合わせて
いろいろ納得できました。

まとめ

やっぱ使ってみるって大事ですね。
他に「知ってるけど使ったことないや」ってのがないか探してみようと思います。

引用元

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1