与if语句中的多个值进行比较

时间:2015-03-31 15:47:57

标签: python if-statement python-3.x

我需要多个if语句与相同的几个元素进行比较,并且想知道这些行中是否有某些东西可以让代码更清晰,更容易。

示例就是这个功能。

def test(num): 

    a = [1, 2, 3]

    if num == a : 
        return True

    else : 
        return False

将返回

>>>test(1)
True
>>>test(2)
True
>>>test(5)
False

而不必为123编写单独的if语句。

2 个答案:

答案 0 :(得分:2)

使用in运算符

if num in a : 

,如

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

一个解决办法(如Padraic所建议的)

 def test(num): 
        a = [1, 2, 3]
        return num in a

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

这也是可能的

test = lambda x:  num in [1, 2, 3]

这就是一条线!

答案 1 :(得分:0)

您可以使用in,或检查index并发现错误:

num in a会检查项num是否在列表a中。

>>> 1 in [1, 2, 5]
True
>>> 3 in [1, 2, 5]
False
>>> 100 in range(101)
True

try获取索引,except抓住IndexError

def isIn(item, lst):
    try:
        lst.index(item)
        return True
    except ValueError:
        return False
    return False

>>> isIn(5, [1, 2, 5])
True
>>> isIn(5, [1, 2, 3])
False