我有一个这样的功能:
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。 =)关于python - 检查 list 中的项目,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16746257/