Мне нужно реализовать дерево И-ИЛИ, например, для следующего: (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](https://i.stack.imgur.com/lxfwb.png)