Найти нужные слова/сочетания слов в строке Python

учу Python и мне надо без импорта библиотек решить следующее задание. У меня есть строки следующие строки(их много, это пример просто):

new_str = "Высшее образование 1988 Московский университет"
new_str1 = "Среднее специальное образование 2000 Воронежский колледж"     
new_str2 = "Среднее образование 1997 Колледж в Туле"
new_str3 = "Неоконченное высшее 2010 в Петербурге"

Из этих строк мне нужны только виды образования, которые относятся к следующим категориям: "высшее", "среднее", "среднее специальное", "неоконченное высшее" Я делала через цикл, одно слово получается, а словосочетание - нет. Мой код:

def detect_education(arg):
    words = arg.lower()
    words = words.split(" ")
    words = words[:2]

    for i in words:
        if i == "высшее":
            return "высшее"
        elif i == "неоконченное" and i == "высшее":
            return "неоконченное высшее"
        elif i ==  "среднее" and  i == "специальное":
            return "среднее специальное"
        elif i == "среднее":
            return "среднее"
    i +=1

Помогите, пожалуйста, решить эту задачу.


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

Автор решения: Сонный кофеман

Если образование всегда стоит в начале строки, то

def detect_education(arg):
    return " ".join(arg.lower().split(" ")[:2])
→ Ссылка
Автор решения: Никитоз Саныч
sochetanie = [
"Высшее",
"Среднее",
"Среднее специальное"
#и далее какие нужны
]
stringi = [
"Высшее образование 1988 Московский университет",
"Среднее специальное образование 2000 Воронежский колледж",     
"Среднее образование 1997 Колледж в Туле",
"Неоконченное высшее 2010 в Петербурге"
]

for soch in sochetanie:
    for strin in stringi:
          if soch in strin:
                 print("НАШЁЁЁЁЁЁЁЁЁЁЛ!!!!!!!!!!!")
→ Ссылка
Автор решения: zSakhalin

во-первых проблема в if "высшее": - если в строке нашлось это слово, то в следующий elif "неоконченное" and "высшее": вы уже не попадёте - это условие уже не будет проверяться, поэтоу мужно менять их местами. Та же ситуация и с "среднее специальное". К тому же как уж говорили: если i у вас, например, содержит "неоконченное", то не может содержать "высшее", т.к. это одна переменая. Вот такой варик есть:

def detect_education(arg):  
    words = arg.lower()  
    words = words.split(" ")  
    words = words[:2]  
    high_edu = "высшее"
    middle_edu = "среднее"
    special_edu = "специальное"
    unfinished_edu = "неоконченное"
    if unfinished_edu in words:
        if high_edu in words:
            return unfinished_edu + " " + high_edu
        elif middle_edu in words:
            if special_edu in words:
                return unfinished_edu + " " + middle_edu + " " + special_edu
            return unfinished_edu + " " + middle_edu
    else:
        if high_edu in words:
            return high_edu
        elif middle_edu in words:
            if special_edu in words:
                return middle_edu + " " + special_edu
            return middle_edu
→ Ссылка