我正在try 解析一个文件,该文件对其包含的数据具有嵌套 struct .数字嵌套的深度是任意的,每个嵌套都由一个字符串分隔,例如‘Begin’和‘End’.我想构造一个列表(或词典等)来保留文件中数据 struct 的嵌套.
作为一个简单的例子,从一个类似如下的列表中:
input = [0, 'begin', 1, 2, 'begin', 3, 4, 'end', 5, 'end', 6]
我想了解以下内容:
[0, [1, 2, [3, 4], 5], 6]
我try 创建一个递归函数来执行此操作,但无法获得正确的输出.(我会包括我对解决方案的try ,但由于递归,我不知道我是接近还是根本不接近).这个问题该如何解决呢?
编辑以添加我的try (我希望这不会只是混淆):
input = [0, 'begin', 1, 2, 'begin', 3, 4, 'end', 5, 'end', 6]
def create_nest(items, nest):
for i, item in enumerate(items):
if item == 'begin':
nest.append(create_nest(items[i+1:], []))
elif item == 'end':
return nest
else:
nest.append(item)
nested_list = []
create_nest(input, nested_list)
这会产生以下结果:
[0, [1, 2, [3, 4], 3, 4], 1, 2, [3, 4], 3, 4]