我需要多个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
而不必为1
,2
和3
编写单独的if语句。
答案 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