Advertisement
Guest User

rpn

a guest
Jul 26th, 2016
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.45 KB | None | 0 0
  1. class RPN:
  2.     operations = {'+': lambda x, y: x + y, '-': lambda x, y: x - y, '*': lambda x, y: x * y, '/': lambda x, y: x / y, '^': lambda x, y: x ** y}
  3.     def calculate(self):
  4.         stack = []
  5.         for e in self._rpn:
  6.             if type(e) is Decimal:
  7.                 stack.append(e)
  8.             else:
  9.                 y = stack.pop()
  10.                 x = stack.pop()
  11.                 stack.append(RPN.operations[e](x, y))
  12.         return stack[0]
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement