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

标签 python python-2.7

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

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/

相关文章:

python-2.7 - Python pandas dataframe 警告,建议改用 .loc?

python - matplotlib 绘制条形图和折线图在一起

python - OSX 上预构建的 Python 包

python - 从环绕的列表中读取批处理

Linux 中的 Python 脚本

Python networkx 链接预测与 adamic_adar_index

python - 使用 matplotlib 绘制两种不同的 SVM 方法有问题吗?

python - 列出python中的重复数据串联

python - 如何从kayak.com上抓取给定区域的酒店最低价格?

python - 插入多个参数的优雅方式