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
Другие вопросы по тегам