[Python] lambda式について

Share on Facebook
Pocket
LINEで送る
Bookmark this on Google Bookmarks

リスト内包表記をまとめたいがためだけの回。
他のサイト様を見ていただいた方がいいかも。。。

lambda式とは無名関数を作成するときに使うもの。

通常、pythonでは関数を作成するときには def を使う。

$ python
Python 2.7.6 (default, Sep  9 2014, 15:04:36)
[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.39)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
> def sum(x, y, z):
...     return x + y + z
...
> sum(1, 2, 3)
6

これをlambda式では以下のように書く。

$ python
Python 2.7.6 (default, Sep  9 2014, 15:04:36)
[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.39)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
> sum = lambda x, y, z: x + y + z
> sum(1, 2, 3)
6

使い方は以下のように書く。

lambda 引数1 引数2 引数3 .... : 処理

defと同じように、引数のデフォルト値も指定できる。

defの場合は

$ python
Python 2.7.6 (default, Sep  9 2014, 15:04:36)
[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.39)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
> def sum(x, y=2, z=3):
...     return x + y + z
...
> sum(1)
6

lambda式の場合も同様に、

$ python
Python 2.7.6 (default, Sep  9 2014, 15:04:36)
[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.39)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
> sum = lambda x, y=2, z=3: x + y + z
> sum(1)
6

lambda式の応用例は次回のリスト内包表記で。

Follow me!

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です