次のようなワンライナーif
ステートメントがあります。
var = var if var < 1. else 1.
最初の部分var = var
は少し見苦しく見えますが、もっと Python らしい言い方ができると思います。
次のようなワンライナーif
ステートメントがあります。
var = var if var < 1. else 1.
最初の部分var = var
は少し見苦しく見えますが、もっと Python らしい言い方ができると思います。
以下は39%短く、私の意見では、他の回答よりもシンプルで Pythonic です。しかしmin
、実際には 1 が の上限であるのに、関数によって混同されて 1 が下限であると考える人が時々間違っていることに注意する必要がありvar
ます。
var = min(var, 1.0)
if var >= 1.:
var = 1
または、1 つのライナーが好きな場合
if var >= 1.: var = 1
を排除するわけではありませんvar = var
が、より短く、よりPythonicであると主張することができます:
var = min(var, 1.0)
たぶん、この方法は短いでしょう
var = min(var, 1.0)
True=1 と False=0 の同等性を使用して、可能な値の 2 タプルにインデックスを付けることができます。
var = (1,var)[var < 1.]
の場合var < 1.
、これは True に評価されます。これは 1 に相当します。これは次のように簡略化されます。
var = (1,var)[1]
または
var = var
そうでない場合var < 1.
、これは False と評価されます。これは 0 に相当し、次のようになります。
var = (1,var)[0]
また
var = 1
したがって、このワンライナー:
var = (1,var)[var < 1.]
次と同等です。
if var < 1.:
var = var
else:
var = 1