2017-01-09 88 views
0

我正在處理一個看起來像這樣的文本文件; (這些字是瑞典語)如何讓每個句子成爲一個嵌套列表?

['1', 'Denna', '_', 'DET', 'DT', 'UTR|SIN|DEF', '2', 'DT', '_', '_\n'] 
['2', 'predestination', '_', 'NOUN', 'NN', 'UTR|SIN|IND|NOM', '7', 'SS', '_', '_\n'] 
['3', 'till', '_', 'ADP', 'PP', '_', '2', 'ET', '_', '_\n'] 
['4', 'en', '_', 'DET', 'DT', 'UTR|SIN|IND', '6', 'DT', '_', '_\n'] 
..... 

有大約500個句子的各種長度;每行描述一個詞。第一個列表元素給出該單詞在句子中的位置。

我需要我的程序從每個句子的條目(每個句子的一個子列表)製作一個嵌套列表。每個新句子都以位置「1」開始,它們由空行分隔。目前我的所有線路都在一個列表中。

我想這樣做:

l = [] 
for line in list: 
    if line[0] == '1': 
     l.append(line) 

...然後追加每次跟隨,直到它再次達到「1」行,在那裏我開始一個新的子列表。

關於如何做的一些ides?我怎麼能做這個遞歸?

回答

0

這不是一個自然遞歸的過程;它是迭代的。一個簡單的循環將完成這項工作。

alla = [] 
forst = True 
for line in list: 
    if line[1] == '1': 
     # ny mening 
     if not forst: 
      alla.append(mening) 
     forst = False 
     mening = [] 

    mening.append(line) 

由於每個附加的觸發器都是句子的開始,所以仍然有一個句子需要添加。我會留下那部分讓你去做。 :-)

相關問題