Ответ 1
Да, используйте 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
. Это приведет к переопределению встроенных типов.