def search_for_element(L, char):
for i in L:
if i == char:
return True
else:
return False
当我运行该功能时,它只在屏幕上输出一个语句。 那么为什么for循环只执行一次呢?
答案 0 :(得分:2)
return
终止该函数,将return False
移到循环之后:
def search_for_element(L, char):
for i in L:
if i == char:
return True
return False
或者简单地说:
def search_for_element(L, char):
return char in L
虽然注意后者不是完全等价,因为它也测试身份(不仅仅是相等)。这只会在相当不寻常的情况下起作用,例如numpy.NAN == numpy.NAN
为False
但numpy.NAN in [numpy.NAN]
为True
。
所以单线代替是:
def search_for_element(L, char):
return any(char == i for i in L)