¿Cómo dividir los caracteres de enteros y operadores de una cadena en Python?
Quiero dividir la cadena en enteros y operadores para realizar la evaluación de expresiones Infix en python.
Aquí está mi cadena:
>>> s = (1-2+3)*5+10/2
Intenté esto para dividir:
>>>list(s)
['(', '1', '-', '2', '+', '3', ')', '*', '5', '+', '1', '0', '/', '2']
Esto está mal. Dado que '10' se divide en '1', '0'
Probé alternativa:
>>> re.findall('[+-/*//()]+|\d+',s)
['(', '1', '-', '2', '+', '3', ')*', '5', '+', '10', '/', '2']
Esto también salió mal. Dado que ') *' debe dividirse en ')', '*'
¿Podrías ayudar a dividir los operadores y los enteros de la expresión dada?