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
假设我想检查给定元组中是否存在两个给定元素中的任何一个,例如:
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