if
我有一个看起来像这样的单行语句:
var = var if var < 1. else 1.
第一部分var = var
看起来有点难看,我敢打赌有一种更 Pythonic 的方式来表达这一点。
if
我有一个看起来像这样的单行语句:
var = var if var < 1. else 1.
第一部分var = var
看起来有点难看,我敢打赌有一种更 Pythonic 的方式来表达这一点。
以下内容缩短了39%,在我看来,它比其他答案更简单、更 Python。但是我们应该注意,有时人们会错误地认为 1 是被min
函数混淆的下限,而实际上 1 是 的上限var
。
var = min(var, 1.0)
if var >= 1.:
var = 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