在列表中找到表达式答案的最pythonic方法是什么? (从左到右评估,并根据运算符优先级)
an_expression = [1, '+', 6, '//', 2]
answer = # 4
another_expression = [2, '-', 2, '*', 3, '+', 1]
answer_2 = # -3
答案 0 :(得分:3)
确保表达式可以安全评估后,您可以使用eval()
,例如:
>>> operators = {'+', '-', '*', '/', '//'}
>>> expr = [1, '+', 6, '//', 2]
>>> if all(isinstance(x, int) or x in operators for x in expr):
... print(eval(''.join(map(str, expr))))
...
4