Поиск в списке строк или больших строк, какой из них быстрее?

пытаясь захватить вывод консоли и найти ключевое слово в том, какой подход должен быть быстрее? например: попытка запустить команду "ls" через python и проверить, есть ли ключевое слово в выводе консоли

1-й подход, имеющий список строк, а затем поиск в каждой строке

list_output = [ "abc", "def", "xyz"]
for i in list_output:
    if "ab" in i:
        print "found"
        break

Обратите внимание: каждый элемент в list_output может представлять собой большую строку

2-й подход с большой строкой и поиск подстроки в большой строке

string_output = "abcdefxyz"
if "ab" in S:
    print "found"

Пожалуйста, обратите внимание: string_output может быть огромной строкой

Необходимо остановить поиск, как только будет найдено первое вхождение, нет необходимости искать всю строку или список дальше

Всего 1 ответ


В соответствии с этим использование вашего второго подхода намного быстрее, чем первого, потому что первый подход на лету устанавливает хеш-таблицу и просто выполняет линейный поиск.

Также (все еще ссылаясь на ссылку выше), если использование последовательности является обязательным, лучше set этот list