我正在尝试将运算符(包括括号)和表达式中的操作数分开。例如给定一个表达式
expr = "(32+54)*342-(4*(3-9))"
我想得到
['(', '32', '+', '54', ')', '*', '342', '-', '(', '4', '*', '(', '3', '-', '9', ')', ')']
这是我写的代码。有没有更好的方法在python中做到这一点。
l = list(expr)
n = ''
expr = []
try:
for c in l:
if c in string.digits:
n += c
else:
if n != '':
expr.append(n)
n = ''
expr.append(c)
finally:
if n != '':
expr.append(n)