【发布时间】:2018-08-15 22:01:39
【问题描述】:
我正在尝试从元组 (a,b) 列表中构建一个逻辑表达式,其中 a 是运算符,b 是深度。基本上,如果下一个元组中的第二个元素大于前一个元素,则插入 '(' 如果小于,则插入 ')' - 如果相等则跳过。
这里是我所说的一个例子:
lst = [('a', 8), ('or', 7), ('b', 8), ('and', 6), ('c', 7), ('and', 5), ('d', 7), ('and', 6), ('e', 7)]
期望的输出是:
((((((((a) or ( b)) and ( c)) and ((d) and (e)))))))
我尝试过枚举、循环添加第二个列表lst[1:] 等等,但我无法得到它。任何帮助是极大的赞赏。谢谢!
【问题讨论】:
-
or和and周围的空格是否必要?它们不是您的数据或描述的一部分。