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

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

4

1 回答 1

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)

由于每个追加的触发器都是句子的开头,因此您还有一个句子要添加。我会把那部分留给你做。:-)

于 2017-01-09T17:38:35.127 回答