2017-01-09 86 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) 

由于每个附加的触发器都是句子的开始,所以仍然有一个句子需要添加。我会留下那部分让你去做。 :-)

相关问题