Как создать дерево И-ИЛИ в python? - PullRequest
1 голос
/ 19 сентября 2019

Мне нужно реализовать дерево И-ИЛИ, например, для следующего: (ENG 2120 или MEEM 2150) и (CE 3620 или CEE 3620)

До сих пор мне удалось реализовать до глубины 1, но этоне учитывает выражения И-ИЛИ.В идеале я хотел бы иметь интерактивное дерево, которое может работать на многих уровнях, и необходимо проводить различие между и / или разбиениями.

Мой код выглядит следующим образом:

def course():
    dept = input("Enter Course Dept: ")
    number = input("Enter Course Code: ")
    row = data[(data['Department']==dept.upper()) & (data['Course_number']==number)]
    op=row.Pre_Requisites.values
    str_join = "".join(op)
    display(HTML(row.to_html()))
    if 'None' in str_join:
        print("No pre-req for this course!")
    else:
        r = replace_all(str_join, ["and", "or", "(", ")"], ",")
        string= [part.split() for part in r.split(",") if part.strip()]
    #print(string)

        for item in string:
            if item[0] == 'C':
                continue
            if item[0] == 'ENVE':
                print(item[0],item[1])
                continue
            if item[0] == 'CE':
                continue
            display(HTML(data[(data["Department"] == item[0]) & (data["Course_number"] == item[1])].to_html()))

Любая идея, как я мог бы реализовать такое дерево?Мой идеальный вывод должен выглядеть так:

И мой вывод выглядит так, как показано на этом рисунке. enter image description here

...