我正在使用看起来像这样的文本文件; (这些词是瑞典语)
['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'再次,我从一个新的子列表开始。
有关如何做到的一些想法?我怎么能做这个递归?
答案 0 :(得分: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)
由于每个附加的触发器是句子的开头,因此您仍然需要添加一个句子。我会留下那部分让你去做。 : - )