下記のスニペットにもっと簡潔なコードがあるのだろうかと思います。Python、関数呼び出しを伴うelse文の場合の簡潔なコード?
def fun(x):
return x + 2
a = 3
x = fun(a)
m = x if x == 3 else 4
print(m)
これは機能しますか?
m = (lambda x: x if x == 3 else 4)(fun(a))
あなたはこのことを見ることができます:あなたはそれをワンライナーを作ること、そして何らかの理由であなたは一度だけfun
を呼び出すことができると判断している場合は
def fun(x):
return x + 2
m = (x = fun(3)) if x == 3 else 4
print(m)
理論的なone-linerで 'fun(3)'を使うことができたら 'x = fun(3)'で 'fun(3)'を使うことができます。そして、あなたは '3 == 3'を知っているので、' m = 3ならfun(3)== 3 else 4'となります。これが実際の状況ではうまくいかない場合は、実際の状況を代表するものを選んでください。 – Ryan
割り当ては文であり、Pythonの式ではありません。コードは簡潔に見える。 –
"これはできますか?"〜あなたは自分自身を試してみませんか? (juanpa.arrivillagaはそれが正しいと言っていません) –