どうすればこのことがわかりますか教えてください。出力は4ifとelseのpythonラムダ式
a=4
b=7
x=lambda: a if 1 else b
lambda x: 'big' if x > 100 else 'small'
print(x())
どうすればこのことがわかりますか教えてください。出力は4ifとelseのpythonラムダ式
a=4
b=7
x=lambda: a if 1 else b
lambda x: 'big' if x > 100 else 'small'
print(x())
あなたx
が常にあり、それは引数を取らず、if 1
は常にTrue
あるとして、4に等しいです。 次に、変数に割り当てられておらず、他の場所で使用されていないラムダ式があります。 最終的には、私が上記のように常に4
であるx
を印刷します。
P.S.私は強くお勧めしますUsing lambda FunctionsからDive into Python
あなたにそれを翻訳させてください。
x
には、引数なしのlambda
関数を割り当てます。 1は常にtrue
と評価されるため、常に外部定義変数a
が返され、4と評価されます。 次に、変数/アクセス名に割り当てない1つの引数x
でラムダ関数を作成します。永遠に失われた。 次に、関数x
を呼び出します。これは常にa
を返します。出力は4
まずあり、それは何もしないとのこの行を削除してみましょう:
lambda x: 'big' if x > 100 else 'small'
このlambda
式が定義されているが呼び出されることはありません。それが引数であるという事実はx
とも呼ばれ、残りのコードとは関係ありません。
はさんが残っているものを見てみましょう:それはコードが含まれているよう
a = 4
b = 7
x = lambda: a if 1 else b
print(x())
ここx
は関数となります。
真の結果、この場合には、他の条件偽結果
場合:それは後方に見ているif
の表現形式を使用しなければならないので、lambda
フォームは、表現、ないステートメントを含めることができます条件は1
です。これは常に真であるため、関数x()
の結果は常にa
の値であり、コードの最初の4に割り当てられています。効果的に、のようなx()
行為:表現とは、このようなコードを理解する鍵である文との違いを理解する
def x():
return a
。
あなたのご質問はありますか? これはif - elseまたはラムダ式についてですか? –
ラムダ機能についてお読みください。 – GAVD