【问题标题】:Building an expression in python dynamically在python中动态构建表达式
【发布时间】:2020-01-19 17:35:35
【问题描述】:

我想构建一个表达式并在 python 中对其进行评估。基本上我会有规则ID,我需要为它构建一个触发条件(T),LHS(L),RHS(R)以表达式的形式。

构建上述3个表达式所需的所有数据将以三个表的形式存储在数据库中。比方说,

1) 常量表 - 存储规则 ID 和常量及其顺序

2) 运算符表 - 存储规则 ID 和运算符、优先运算符及其顺序

3) 变量表 - 存储规则 ID 和变量、优先运算符及其顺序

表格数据的格式为

所以基于方程顺序 id,我需要为给定的 RuleId 构建 T、L、R 表达式。 例如:RuleId =3, T,L,R 的表达式如下

T : (!2204) 和 (!2204)

L : 2204

R : 2204 * 2.00000

尝试通过在 C# 中使用堆栈、队列构建表达式,它工作正常。 python中是否存在其他简单的方法来实现这一点?

【问题讨论】:

    标签: c# python expression lambda-calculus


    【解决方案1】:

    有一个非常相似的问题,cs95 在相关帖子上的解决方案对我有用:

    Dynamically filtering a pandas dataframe

    基本上,字符串解析 + eval() 看起来是一个不错的选择,如果您已经在使用 pandas,则可以使用 df.query()。

    【讨论】:

      猜你喜欢
      • 2014-07-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-29
      • 2013-03-24
      相关资源
      最近更新 更多