Как найти несколько последовательных значений в списке и получить их индексы?

К примеру у меня есть два списка:

list1 = ['Walking', '20', 'streets', 'uptown', 'or', 'downtown', 'in', 'Midtown', 'generally', 'covers', 'a', 'distance', 'of', 'approximately', 'one', 'mile', '.']

list2 = ['20','streets','uptown']

В list1 содержится предложение, в list2 несколько последовательно идущих частей предложения, индексы которых я хотел бы найти в list1. Как я могу это сделать?

for i in range(len(L)):
    if D[0] == L[i]:
        d,j = 1,1
        mas = []
        mas.append(True)
        ind = []
        ind.append(i)
        while d < len(D):
            if D[d] == L[i + j]:
                mas.append(True)
                ind.append(i+j)
                d += 1
                j += 1
            else:
                mas.append(False)
        if False not in mas:
            break

Написал такой код, как его можно улучшить?


Ответы (1 шт):

Автор решения: Эникейщик

Искать в list1 элемент list2[0], как нашлось проверить следующие два. Если совпало - вывести индексы.

→ Ссылка