如果某些条件是有条件的,那么进行多重或比较的最有效方法是什么

时间:2014-03-17 20:59:53

标签: python python-2.7

我有一个值val,我想检查它是否是多个值之一(123)。通常我会这样做:

if val in [1,2,3]:

但是,如果满足其他条件(3),我只想包含test。不合理地说,就是这样:

if val in [1,2,3] and (test if val == 3 else True):

这是一个相当尴尬的比较(并不是非常易读),而且我测试了val == 3两次,所以有没有办法一次性完成所有操作? (即更有效率)提前致谢,

1 个答案:

答案 0 :(得分:6)

if val in [1,2] or (val == 3 and test):
   # do it

and效率更高,更清晰。 or运算符表达式分为2部分,右部分仅在左侧为False时进行评估。来自python docs

  

表达式x或y首先计算x;如果x为真,则其值为   回;否则,评估y并得到结果值   返回。