これまでに尋ねられている場合は申し訳ありませんが、どこにも表示されませんでした。Pythonの1行のラムダ関数の条件文?
私は、ラムダ関数の中でif文を使用する必要があるシナリオを本質的に見つけました。私はそれがこのように見える必要があるしかし
T = 250
if (T > 200):
rate = 200*exp(-T)
else:
rate = 400*exp(-T)
return (rate)
:どのようなことを困難にすることは
通常、私はこのことを書くでしょう(?ザッツでも可能であれば)、理想的には1行のコードである必要があります:
rate = lambda(T) : if (T>200): return(200*exp(-T)); else: return(400*exp(-T))
私はラムダ関数の意思決定の外側を取るためになりませんし、各ケースに個別のラムダ関数を持っているより簡単なことを実現するが、ここではその本当に適していません。ラムダ関数は配列に格納され、必要に応じてアクセスされます。各配列要素は特定の「レート」に対応しているため、同じ「レート」の2つの別々の行が混乱します。どんな助けでも大いに感謝されるでしょうし、そうでない場合、他の人からの何らかの確認はうまくいくでしょう:)
私は、私はあなたが1行の機能が必要であることを疑うので、あなたが、1行のラムダ関数を必要とすることを二乗疑う、と私はという名前の関数とは対照的に、あなたはラムダ関数が必要であることを疑います。あなたの関数に 'rate'という名前をつけようとするなら、' lambda'を使う点は何ですか? – DSM
DSMを1回しか+1できないのは残念ですが、わかりやすいように、「ラムダ関数の外で意思決定をするのではなく、最初に正規関数として定義するだけです。通常の関数を配列に格納できます。ラムダには特別なものは何もありません。彼らはもっと機能が限定されていますが、それ以上の機能はありません。 – abarnert
さて私はあなたが名前の関数で行うことができるとは思わなかった1行に収まるように必要な機能、?また、これらの関数は文字列として格納され、通常の関数の処理方法がわからない "eval"を使って評価されます。 –