所以这是我的问题:
我已成功将行缩进级别的文本文件解析为如下列表:
A = [[1,'a'],[1,'b'],[2,'c'],[2,'d'],[1,'e'],[2,'f']]
list 中的每个元素A
都是一个长度为 2 的列表。每个元素对应于从文本文件中读取的一行。A[x][0]
是indent level
文本文件中A[x][1]
的行的,是行的内容,其中x
是 中任何元素的索引A
。
例如A[1] = [1,'b']
,1
缩进级别和'b'
行文本在哪里。
A[2]
并且A[3]
是A[1]
ie 子缩进行的子代。
我正在尝试获取将采用以下格式的输出列表:
B = [['a'],['b',['c','d']],['e',['f']]]
这样,当我迭代时,B[x][0]
我将只获得第一级缩进项,并且能够递归地转到每个元素。
该算法应该能够处理无限深度,即如果A[3]
后面跟着元素[3,'z']
它应该是一个嵌套列表A[3]
。
我已经探索了一些解决类似问题和使用的其他帖子,itertools.groupby
但不幸的是,我无法充分理解它们,无法将其应用于我的问题。
真的很感谢你们的帮助!