我有一个单行if
语句,如下所示:
var = var if var < 1. else 1.
第一部分var = var
看起来有点难看,我敢打赌,有更多的pythonic方式来说这个。
答案 0 :(得分:18)
以下 39%更短,在我看来比其他答案更简单,更pythonic。 但是我们应该注意到,当{1}是min
的上限时,有时人们会认为1是var
函数混淆的下界。
var = min(var, 1.0)
答案 1 :(得分:9)
if var >= 1.:
var = 1
或者如果您喜欢一个衬垫
if var >= 1.: var = 1
答案 2 :(得分:5)
不会消除var = var
,但它会更短,而且可以争辩,更加pythonic:
var = min(var, 1.0)
答案 3 :(得分:4)
也许这种方式会更短
var = min(var, 1.0)
答案 4 :(得分:2)
您可以使用等于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