我有一个这样的功能:

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/

10-16 08:48