在列表中查找表达式的答案

时间:2018-04-29 08:55:30

标签: python list expression

在列表中找到表达式答案的最pythonic方法是什么? (从左到右评估,并根据运算符优先级)

an_expression = [1, '+', 6, '//', 2]
answer = # 4

another_expression = [2, '-', 2, '*', 3, '+', 1]
answer_2 = # -3

1 个答案:

答案 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