关于python:检查列表中包含字符串的字符串的最简单方法?

Simplest way of checking for string that contains a string in list?

本问题已经有最佳答案,请猛点这里访问。

我发现自己反复地写着同一段代码:

1
2
3
4
5
6
def stringInList(str, list):
    retVal = False
    for item in list:
        if str in item:
            retVal = True
    return retVal

有没有什么方法可以用更少的代码更快地编写这个函数?我通常在if语句中使用这个,比如:

1
2
if stringInList(str, list):
    print 'string was found!'


是的,使用any()

1
2
if any(s in item for item in L):
    print 'string was found!'

正如文档所提到的,这相当于您的函数,但是any()可以采用生成器表达式,而不仅仅是字符串和列表,并且any()短路。一旦s in item为真,函数就会中断(如果您只是将retVal = True改为return True的话,您只需使用函数就可以了。记住,函数返回值时会中断。

应避免命名字符串str,并列出list。这将覆盖内置类型。