我发现自己反复编写相同的代码块:
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!'
是的,使用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
。这将覆盖内置类型。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句