【问题标题】:How do I make each sentence into a nested list?如何将每个句子变成嵌套列表?
【发布时间】:2017-01-09 11:49:38
【问题描述】:

我正在处理一个看起来像这样的文本文件; (单词是瑞典语)

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

关于如何做到这一点的一些想法?我怎样才能使这个递归?

【问题讨论】:

    标签: file recursion nested-lists sentence-similarity


    【解决方案1】:

    这不是一个自然递归的过程;它是迭代的。一个简单的循环就可以完成这项工作。

    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)
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-04-05
      • 2018-08-10
      • 2018-11-07
      • 2021-07-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-01
      相关资源
      最近更新 更多