在Python 3.7中计算列表

时间:2018-09-22 11:36:43

标签: python python-3.x operators

我想知道是否可以计算一个列表,例如这个列表

textfield

因此它返回31。

4 个答案:

答案 0 :(得分:2)

永远不要使用eval。选中此post

相反,您可以引用其他一些库,例如asteval

from asteval import Interpreter
aeval = Interpreter()
calculation = [1, "+", 2, "*", 15]
aeval.eval(''.join(map(str, calculation)))

答案 1 :(得分:0)

也许您可以看一下二进制表达式树。

binary expression tree

答案 2 :(得分:0)

确定:

eval(' '.join(map(str, calculation)), {}, {})

内部的join(无双关语)将构建一个有效的Python代码的单个字符串,然后您只需eval()即可。

这两个{}是可选的,它们使它们成为可能,因此代码运行时无需访问周围的全局变量和局部变量。

答案 3 :(得分:0)

eval可用于评估python中的表达式(字符串形式)。

所需的输出可以通过以下方式获取

eval(''.join([str(x) for x in calculation]))