1. ホーム
  2. python

[解決済み] Pythonのラムダを複数行で記述する方法は?重複している] [重複している] [重複している] [重複している

2022-02-15 09:42:31

質問

Pythonで、複数行を取るラムダ関数を書くにはどうしたらいいのでしょう。試しに

d = lambda x: if x:
                 return 1
              else 
                 return 2

が、エラーが出てしまう...。

どうすればいいですか?

使用方法 def の代わりに

def d(x):
    if x:
        return 1
    else:
        return 2

Pythonの関数はすべて一次オブジェクトです(引数として渡すことができます)。 lambda は単に短いものを作るのに便利な方法です。一般に、1行以上の単純なコードになる場合は、通常の関数定義を使用する方がよいでしょう。

その場合でも、実際には、名前に割り当てるのであれば、私は常に def オーバー lambda . lambda が本当に良いアイデアなのは、短い key 関数で使用されます。 sorted() は、関数呼び出しの中にインラインで配置することができるため、例えば、以下のようになります。

あなたの場合、三項演算子でうまくいくことに注意してください ( lambda x: 1 if x else 2 ) が、これは簡略化されたケースだと推測されます。

(コードゴルフのメモとして、これはより少ないコードで行うこともできます lambda x: bool(x)+1 - もちろん、それは非常に読みにくいし、悪い考えだ)。