我发现自己反复写同一块代码:
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!'
答案 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
。这将覆盖内置类型。