Вы можете сравнить два списка с такой функцией, как эта.Как это работает, он просматривает ваш более короткий список и каждый раз, когда находит следующее слово в длинном списке, обрезает первую часть более длинного списка в этой точке.Если он не может найти слово, он возвращает ложь.
def is_sub_sequence(long_list, short_list):
for word in short_list:
if word in long_list:
i = long_list.index(word)
long_list = long_list[i+1:]
else:
return False
return True
Теперь у вас есть функция, которая сообщает вам, является ли список нужным типом, вы можете отфильтровать все нужные вам списки из списка.списков », используя следующее понимание списка:
a = [['she', 'is', 'a', 'student'],
['she', 'is', 'a', 'lawer'],
['she', 'is', 'a', 'great', 'student'],
['i', 'am', 'a', 'teacher'],
['she', 'is', 'a', 'very', 'very', 'exceptionally', 'good', 'student']]
b = ['she', 'is', 'student']
filtered = [x for x in a if is_sub_sequence(x,b)]
Список filtered
будет включать в себя только списки нужного типа.