如何将每个句子变成嵌套列表?

时间:2017-01-09 11:49:39

标签: file recursion nested-lists sentence-similarity

我正在使用看起来像这样的文本文件; (这些词是瑞典语)

['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'再次,我从一个新的子列表开始。

有关如何做到的一些想法?我怎么能做这个递归?

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)

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