Python IF多个"和""或"在一个语句中

yin*_*liu 4 python if-statement python-2.7 python-3.x

我只是想知道以下if语句是否有效:

    value=[1,2,3,4,5,f]
    target = [1,2,3,4,5,6,f]
    if value[0] in target OR value[1] in target AND value[6] in target:
       print ("good")
Run Code Online (Sandbox Code Playgroud)

我的目标是确保同时满足以下两个要求:1.值[6]必须在目标2中.无论是值[0]还是值[1],如果我做了一个糟糕的例子但目标道歉我的问题是,如果我可以在一个声明中做出三个AND&OR?非常感谢!

ale*_*cxe 8

使用括号对条件进行分组:

if value[6] in target and (value[0] in target or value[1] in target):
Run Code Online (Sandbox Code Playgroud)

请注意,in如果要将其定义target为set,则可以在常量时间内进行查找:

target = {1,2,3,4,5,6,f}
Run Code Online (Sandbox Code Playgroud)

并且,正如@Pramod在评论中所提到的,在这种情况下value[6]会产生一个,IndexError因为在定义中只有6个元素value,索引是从0开始的.