检查清单中的项目

我有一个像这样的功能:


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'。我该如何解决?


慕慕森
浏览 172回答 3
3回答

慕容森

您将返回True正确的位置,但是如果第一项不匹配,该函数将False立即返回,而不是继续循环。只需将移到return False函数的末尾,即循环之外:def checks(a,b):    for item in a:        if b[1] == item[1]:           return True    return FalseTrue如果项目匹配False则返回,如果循环不匹配则返回。无论如何,这解释了为什么您的代码无法正常工作,而是any按照其他人的建议使用Pythonic的原因。=)

月关宝盒

这可以用一种更简单的方式表示:def checks(a, b):    return any(b[1] == item[1] for item in a)

宝慕林4294392

您可以any()在这里使用:def checks(a,b):    return any (b[1] == item[1] for item in a)>>> checks(['5v','7y'],'6y')True>>> checks(['5v','7z'],'6y')False帮助any:>>> print any.__doc__any(iterable) -> boolReturn True if bool(x) is True for any x in the iterable.If the iterable is empty, return False.
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python