Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- expr = "(32+54)*342-(4*(3-9))"
- ['(', '32', '+', '54', ')', '*', '342', '-', '(', '4', '*', '(', '3', '-', '9', ')', ')']
- 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)
- >>> import re
- >>> expr = "(32+54)*342-(4*(3-9))"
- >>> re.split("([-()+*/])", expr)
- ['', '(', '32', '+', '54', ')', '', '*', '342', '-', '', '(', '4', '*', '', '(', '3', '-', '9', ')', '', ')', '']
- >>> [part for part in re.split("([-()+*/])", expr) if part]
- ['(', '32', '+', '54', ')', '*', '342', '-', '(', '4', '*', '(', '3', '-', '9', ')', ')']
- >>> [x[1] for x in tokenize.generate_tokens(StringIO.StringIO('(32+54)*342-(4*(3-9))').readline)]
- ['(', '32', '+', '54', ')', '*', '342', '-', '(', '4', '*', '(', '3', '-', '9', ')', ')', '']
- >>> if True:
- exp=[]
- expr = "(32+54)*342-(4*(3-9))"
- flag=False
- for i in expr:
- if i.isdigit() and flag:
- exp.append(str(exp.pop(len(exp)-1))+i)
- elif i.isdigit():
- flag=True
- exp.append(i)
- else:
- flag=False
- exp.append(i)
- print(exp)
- ['(', '32', '+', '54', ')', '*', '342', '-', '(', '4', '*', '(', '3', '-', '9', ')', ')']
- >>>
Add Comment
Please, Sign In to add comment