计算 Python 中的列表 3.7
Calculate lists in Python 3.7
我想知道是否可以计算一个列表,例如这个
calculation = [1, "+", 2, "*", 15]
所以 returns 31.
也许你可以看一下二叉表达式树。
当然可以:
eval(' '.join(map(str, calculation)), {}, {})
内部 join
(没有双关语意)构建一个有效 Python 代码的字符串,然后您只需 eval()
它。
两个 {}
是可选的,它们使代码运行时无需访问周围的全局和局部变量。
eval
可用于计算python中的表达式(字符串形式)。
可以得到想要的输出如下
eval(''.join([str(x) for x in calculation]))
永远不要使用 eval
。检查这个 post
相反,您可以参考其他一些库,例如 asteval
from asteval import Interpreter
aeval = Interpreter()
calculation = [1, "+", 2, "*", 15]
aeval.eval(''.join(map(str, calculation)))
我想知道是否可以计算一个列表,例如这个
calculation = [1, "+", 2, "*", 15]
所以 returns 31.
也许你可以看一下二叉表达式树。
当然可以:
eval(' '.join(map(str, calculation)), {}, {})
内部 join
(没有双关语意)构建一个有效 Python 代码的字符串,然后您只需 eval()
它。
两个 {}
是可选的,它们使代码运行时无需访问周围的全局和局部变量。
eval
可用于计算python中的表达式(字符串形式)。
可以得到想要的输出如下
eval(''.join([str(x) for x in calculation]))
永远不要使用 eval
。检查这个 post
相反,您可以参考其他一些库,例如 asteval
from asteval import Interpreter
aeval = Interpreter()
calculation = [1, "+", 2, "*", 15]
aeval.eval(''.join(map(str, calculation)))