У меня есть функция, которая возвращает True, если строка соответствует хотя бы одному регулярное выражение в списке и False в противном случае. Функция называется достаточно часто, что производительность является проблемой.
При запуске через cProfile функция тратит около 65% его время делает матчи и 35% времени перебирает список.
Я бы подумал, что есть способ использовать map() или что-то, но я не могу подумайте о способе остановить его повторение после того, как он найдет совпадение.
Есть ли способ сделать функцию быстрее, все еще возвращая ее при поиске первого матча?
def matches_pattern(str, patterns):
for pattern in patterns:
if pattern.match(str):
return True
return False