好吧,我正在尝试编写一个简单的解析器,给出以下内容:
d = {
'a': [1,2,3,4],
'b': [2,3,4,5],
'c': [2,4,6,7]
}
以及以下两个功能:
def _and(l1, l2):
return [i for i in l1 if i in l2]
def _or(l1, l2):
return list(set(l1+l2))
我正在尝试接收一个字符串(例如"a||(b&c)"
)并将其解析为以下内容:
_or(d['a'],_and(d['b'],d['c']))
我以前从未写过解析器,所以我有点迷茫。解析器应该支持OR
,AND
和括号。有人能指出我正确的方向吗?如果有人知道的话,Python 中的类似示例会很棒。