Python中eval的替代方法
问题内容:
Pythoneval
相当慢。我需要使用逻辑运算符(例如“
True或False”)评估简单的布尔表达式。我正在处理数千行数据,eval
这在性能方面是一个巨大的瓶颈。这真的很慢。还有其他方法吗?
我尝试创建一个dict
可能的表达式组合及其期望的输出,但这确实很丑陋!
我现在有以下代码:
eval('%s %s %s' % (True, operator, False))
问题答案:
import operator
ops = { 'or': operator.or_, 'and': operator.and_ }
print ops[op](True, False)