我有这样一个函数:
def checks(a,b):
for item in a:
if b[1] == item[1]:
return True
else:
return False
我想检查 b 的第二个值是否在 a 中的项目的第二个值中,例如:
checks(['5v','7y'],'6y')
>>> True
但我现在的代码将返回 False,因为我相信它正在比较 '6y' 和 '5v'。我该如何解决这个问题?
请您参考如下方法:
您在正确的位置返回 True,但如果第一项不匹配,该函数会立即返回 False,而不是继续循环。只需将 return False 移动到函数的末尾,在循环之外:
def checks(a,b):
for item in a:
if b[1] == item[1]:
return True
return False
True 将在项目匹配时返回,而 False 将在循环结束但没有匹配项时返回。
无论如何,这解释了为什么您的代码不起作用,但是按照其他人的建议使用 any 是 Pythonic。 =)
