我想知道是否可以计算一个列表,例如这个列表
textfield
因此它返回31。
答案 0 :(得分:2)
永远不要使用eval
。选中此post
相反,您可以引用其他一些库,例如asteval
from asteval import Interpreter
aeval = Interpreter()
calculation = [1, "+", 2, "*", 15]
aeval.eval(''.join(map(str, calculation)))
答案 1 :(得分:0)
也许您可以看一下二进制表达式树。
答案 2 :(得分:0)
确定:
eval(' '.join(map(str, calculation)), {}, {})
内部的join
(无双关语)将构建一个有效的Python代码的单个字符串,然后您只需eval()
即可。
这两个{}
是可选的,它们使它们成为可能,因此代码运行时无需访问周围的全局变量和局部变量。
答案 3 :(得分:0)
eval
可用于评估python中的表达式(字符串形式)。
所需的输出可以通过以下方式获取
eval(''.join([str(x) for x in calculation]))