擅长:python、mysql、java
<p>我认为你把问题复杂化了。将解析器视为一个非常简单的状态机。你要么在子列表中,要么不在子列表中。每次你点击一个散列,你就会切换状态</p>
<p>输入子列表时,创建一个新列表。在子列表中时,附加到当前列表。就这样。以下是一个示例:</p>
<pre><code>pair_list = []
in_pair = False
for token in tokens:
if in_pair:
if token == '#':
in_pair = False
else:
pair_list[-1].append(token)
elif token == '#':
pair_list.append([])
in_pair = True
</code></pre>