Найти позицию ключевого слова:
kw = extract.index("keyword")
Найти элемент с наибольшим индексом, который содержит "="
в подсписке исходного списка перед позицией ключевого слова:
eq = max(i for i,w in enumerate(extract[:kw])
if isinstance(w,str) and "=" in w)
Найти элемент с наименьшим индексом, который содержит ";"
в подсписке от предыдущего элемента до конца:
semi = min(i for i,w in enumerate(extract[eq:], eq)
if isinstance(w,str) and ';' in w)
Извлечь подсписок между двумя крайностями:
extract[eq:semi+1]
#['3=', 'fd', 'dfdf', 'keyword', 'ssd', 'sdsd', ';']