分析pyparsing时替换变量

2024-04-29 02:51:44 发布

您现在位置:Python中文网/ 问答频道 /正文

假设我有一个简化的表达式,如下所示

(3 + 7 + (x + 5))

有没有一种使用pyparsing的方法可以计算表达式,并且在运行时注意x是一个需要被外部表达式替换的变量? 所以基本上3+7的值是10,x是一个变量,被10代替,所以最后的表达式是

^{2}$

如果我在运行前知道x是10。在

变量上方始终有一个“父级”用于替换。我真的不知道从哪里开始找。在

我想我的问题是:

  1. pyparsing允许这样做吗?在
  2. 如果没有,那么python中是否有一个解析库可以做到呢?在
  3. 我是否应该为这个问题构建自己的解析器,以便在递归时实现peek()或next()方法来处理这个问题

任何开始使用的提示或文档都是很好的。在

很抱歉,如果我把人们引向错误的方向或引起混乱,我试图把我的问题简单化。我将尝试扩展更多,但它变得很复杂,因为后面会有相当多的代码。在

假设我有以下字典:

prices_by_day = {
  'monday' : [
    {'name' : 'apple', 'price' : 0.99},
    {'name' : 'orange', 'price': 1.99}
  ],
  'tuesday': [
    {'name' : 'apple', 'price' : 0.50},
    {'name' : 'orange', 'price': 0.80}
  ]
}

我要做的是写一个表达式,得到苹果在星期一的价格,取这个价格,然后找出所有低于星期二价格的商品。 问题是,我不可能总是知道苹果周一的价格,否则价格可能会发生变化,但我希望一旦知道苹果的价格,我就可以把它转换成一个表达式 比如说

 get(price of apples monday) and 
 get(price of all tuesday array objects < ${PREVIOUSLY_EVALUAED_PRICE_OF_APPLES})

我希望这有助于解释更多,而不是让它更混乱。在


Tags: of方法name苹果解析器appleget表达式