Вам не нужно составлять списки. Просто l oop над длинной строкой и проверьте, существует ли подстрока в каждой позиции.
long_string = "This is a long string"
short_string = "a long"
short_len = len(short_string)
for i in range(len(long_string) - short_len):
if long_string[i:i+short_len] == short_string:
print("substring found at index", i)
break
else:
print("Substring not found")
l oop перебирает индексы символов в long_string
. В каждом индексе он получает подстроку, начинающуюся с этого индекса и содержащую short_len
символов. Поэтому, когда i == 5
, она получает подстроку от 5
до 10
, то есть 'is a l'
. Он сравнивает эту подстроку со строкой, которую мы ищем, и, если она совпадает, выводит сообщение об успешном завершении и выходит из l oop.
Блок else:
запускается в конце l oop если все закончилось нормально, не вырвавшись. Если мы туда попадем, то никогда не найдем подходящей подстроки.