比较 if 语句中的多个值

iot*_*taa 1 python if-statement python-3.x

与相同的几个元素相比,我将需要多个 if 语句,并且想知道我是否可以做一些事情来使代码更干净、更简单。

例子就是这个函数。

def test(num): 

    a = [1, 2, 3]

    if num == a : 
        return True

    else : 
        return False
Run Code Online (Sandbox Code Playgroud)

会回来

>>>test(1)
True
>>>test(2)
True
>>>test(5)
False
Run Code Online (Sandbox Code Playgroud)

1而不必为、2和编写单独的 if 语句3

Bha*_*Rao 5

使用in运算符

if num in a : 
Run Code Online (Sandbox Code Playgroud)

def test(num): 
    a = [1, 2, 3]
    if num in a : 
        return True
    else : 
        return False
Run Code Online (Sandbox Code Playgroud)

解决方法是(按照 Padraic 的建议)

 def test(num): 
        a = [1, 2, 3]
        return num in a
Run Code Online (Sandbox Code Playgroud)

这是可行的,因为 in 运算符会比较 LHS 是否存在于 RHS 中并分别返回一个布尔值。

这也是可能的

test = lambda x:  num in [1, 2, 3]
Run Code Online (Sandbox Code Playgroud)

这一切都在一行中!