python: альтернативный способ встроенной функции any
Я работаю с Python 2.4, и мне нужно использовать любую функцию, которая недоступна в моей версии Python.
Есть ли функция или выражение, которое я могу использовать, чтобы заменить его?
Мне нужно найти, если хотя бы один элемент списка строк находится в текстовой строке.
2 ответа
any
Функция довольно проста для повторной реализации.
Идея состоит в том, чтобы просто перебрать итерируемое и, как только будет найден истинный объект, вернуть True
; иначе верните Ложь.
Не изменяя и не заглядывая в документ, вот повторная реализация:
def my_any(iterable):
for it_element in iterable:
if it_element:
return True
return False
Теперь с версией документа:
def any(iterable):
for element in iterable:
if element:
return True
return False
Это так просто, моя версия точно такая же, как и документация.
О том, как его использовать... any
Функция занимает многократное Обычно он используется либо со списком, либо с выражением генератора. Например, если вы хотите проверить, если какой-либо символ 'abcd'
находится в line
строка:
any(it_character in line for it_character in 'abcd')
Для вашего конкретного случая использования ("перерыв" не является обязательным):
ans = False
for string in lst:
if string in line:
ans = True
break