Python 布尔 "In" 和 "Or" 语句一起

Python Boolean "In" and "Or" Statements Together

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

if foo in my_tuple or bar in my_tuple:

是否有更 pythonic 的方式来构造此表达式?具体来说,如果我想检查多个元素,语句就会变得非常长。我试过了

if (foo or bar) in my_tuple:

但是这会选择 foo 而不是 bar 并且只检查 foo。希望对此有任何意见。

这是 pythonic,可以工作:

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

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

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

但是 请记住,值应该是 hashable, if not, look at