だからここに私の問題があります:
次のようなリストに行インデント レベルのテキスト ファイルを正常に解析しました。
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]
およびie サブインデント行A[3]
の子です。A[1]
次の形式になる出力リストを取得しようとしています。
B = [['a'],['b',['c','d']],['e',['f']]]
このように反復するB[x][0]
と、最初のレベルのインデントされたアイテムのみが取得され、各要素に再帰的に移動できます。
アルゴリズムは無限の深さを処理できる必要があります。つまりA[3]
、要素が続く場合は[3,'z']
、のネストされたリストにする必要がありA[3]
ます。
同様の問題を解決して使用する他の投稿をいくつか調べましitertools.groupby
たが、残念ながら、私の問題に適用できるほど十分に理解できていません。
助けてくれて本当にありがとう!