Python布尔“在”和“或”语句一起

时间:2017-06-08 10:28:22

标签: python python-2.7 boolean boolean-expression

假设我想检查给定元组中是否存在两个给定元素,例如:

if foo in my_tuple or bar in my_tuple:

是否有更多的pythonic方式来构建此表达式?具体来说,如果我想检查几个元素,那么这些语句会变得烦人。我试过了

if (foo or bar) in my_tuple:

但是这会选择foo over bar并仅检查foo。非常感谢您的任何投入。

2 个答案:

答案 0 :(得分:10)

这是pythonic,可以工作:

if any(v in my_tuple for v in [foo, bar, eggs, spam, parrot, lumberjack]):

答案 1 :(得分:3)

如果你需要比较很多元素,那么最好检查set个对象的交集:

if {foo, bar, other_vars} & set(my_tuple):

请注意,值应为hashable,否则,请查看Rory Daulton answer