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

wnn*_*maw 3 python python-2.7

我有一个值,val这是我想检查它是否是几个固定值(1,2,或3).通常我会这样做的方式是:

if val in [1,2,3]:
Run Code Online (Sandbox Code Playgroud)

但是,我只想包括3是否满足另一个条件(test).不合理地说,就是这样:

if val in [1,2,3] and (test if val == 3 else True):
Run Code Online (Sandbox Code Playgroud)

这是一个非常尴尬的比较(不是很可读),我正在测试val == 3两次,所以有没有办法一次性完成所有这些?(即更有效率)提前致谢,

ndp*_*dpu 6

if val in [1,2] or (val == 3 and test):
   # do it
Run Code Online (Sandbox Code Playgroud)

效率更高,and更清晰.将or运算符表达式分为2部分,右部分仅在左侧进行评估False.从python文档:

表达式x或y首先评估x; 如果x为真,则返回其值; 否则,将评估y并返回结果值.