检查列表中包含字符串的字符串的最简单方法是什么?

时间:2013-11-01 12:49:54

标签: python string list

我发现自己反复写同一块代码:

def stringInList(str, list):
    retVal = False
    for item in list:
        if str in item:
            retVal = True
    return retVal

有没有什么办法可以更快/更少的代码编写这个功能? 我通常在if语句中使用它,如下所示:

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

1 个答案:

答案 0 :(得分:77)

是的,请使用any()

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

正如文档所提到的,这几乎与您的函数等效,但any()可以使用生成器表达式而不仅仅是字符串和列表,以及any()短路。一旦s in item为True,函数就会中断(如果只是将retVal = True更改为return True,则可以使用函数执行此操作。请记住函数在返回值时会中断。)


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