我有一个值 val
,我想检查它是否是多个值之一(1
、2
或 3
)。通常我会这样做的方式是:
if val in [1,2,3]:
但是,如果满足另一个条件 (test
),我只想包含 3
。不优雅地说,它会是这样的:
if val in [1,2,3] and (test if val == 3 else True):
这是一个非常尴尬的比较(不是很可读),我正在测试 if val == 3
两次,那么有没有办法一次完成所有这些? (即更有效)提前致谢,
最佳答案
if val in [1,2] or (val == 3 and test):
# do it
比 和
更高效,更清晰。使用 或
运算符的表达式分为两部分,只有当左侧为 False
时,右侧部分才被评估。来自 python docs :
The expression x or y first evaluates x; if x is true, its value is returned; otherwise, y is evaluated and the resulting value is returned.
关于python - 如果某些条件是有条件的,进行多重或比较的最有效方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22465281/