def UcitajRecnik(): d = {} u= input().split(";") for i in range(len(u)): d[u[i][0]] = [u[i][2], u[i][4], u[i][6]] return d def UcitajIzraz(): iz = " ".join(input().split()) print(iz) return iz def ObradiIzraz(izraz, d): lista = [x for x in izraz if x != " "] while(len(lista) > 1): s, poz = IzaberiOperator(lista, d) if(d[s][0] == '2'): lista[poz] = "(" + lista[poz-1] + " " + lista[poz] + " " + lista[poz+1] + ")" lista.pop(poz + 1) lista.pop(poz - 1) print(lista) elif(d[s][2] == 'D'): lista[poz] = "(" + lista[poz] + " " + lista[poz+1] + ")" lista.pop(poz+1) else: lista[poz] = "(" + lista[poz-1] + " " + lista[poz] + ")" lista.pop(poz-1) break def IzaberiOperator(lis, d): return '+', 1 dit = UcitajRecnik() print(dit.items()) izraz = UcitajIzraz() ObradiIzraz(izraz, dit)
+,2,1,L;-,2,1,L;*,2,2,L;/,2,2,L a + b - c * d / e
dict_items([('+', ['2', '1', 'L']), ('-', ['2', '1', 'L']), ('*', ['2', '2', 'L']), ('/', ['2', '2', 'L'])]) a + b - c * d / e ['(a + b)', '-', 'c', '*', 'd', '/', 'e']