在列表中列出列表:从单词列表中的单词中列出单词

时间:2018-10-24 16:42:33

标签: python list

我有一个单词列表,像这样:

wordlist = ['i', 'would', 'like', 'to', 'go', 'to', 'the', 'store', '<s>', 'i', "'d", 'like', 'to', 'go', 'to', 'a', 'fancy', 'restaurant','<s>']

我想列出一个句子列表: 这是我正在使用的代码

sentence = []
start = []
end = []

wordlist = [word.replace('.','<s>') for word in wordlist]

for word in wordlist:
    end = word['<s>']


for word in wordlist:
    sentence = word[0][end]
    sentence.append([])

我正在尝试获取如下列表: sentence=[['i', 'would', 'like', 'to', 'go', 'to', 'the', 'store', '<s>'], ['i', "'d", 'like', 'to', 'go', 'to', 'a', 'fancy', 'restaurant','<s>], ...etc]

我的想法是用“”标记句子的结尾,并告诉我的句子列表在“”之后创建一个新列表。一切都会有帮助的,谢谢。

3 个答案:

答案 0 :(得分:1)

您不必将'<s>'的字符串替换为'.'来跟踪句子何时结束。如果您想在'<s>'结尾句子,则只需在每次向当前句子中添加一个单词时进行检查,就像这样:

sentences = []
current_sentence = []

for word in wordlist:
    current_sentence.append(word)
    if word == '<s>':
        sentences.append(current_sentence)
        current_sentence = []

print(sentences)

在这里,我将您的sentence列表替换为sentences。这将跟踪您从单词列表中创建的所有句子。 current_sentence将跟踪您当前句子中的所有单词。当您到达'<s>'时,此代码会将您当前的句子列表添加到sentences,然后将current_sentence重置为空列表。

答案 1 :(得分:0)

您可以从iter创建一个wordlist,然后对while使用try/except循环来迭代并创建子列表,这些子列表将附加到最终列表中。 / p>

a = iter(wordlist)
res = []
temp = []

while True:
    try:
        b = next(a)
        if b != '<s>':
            temp.append(b)
        else:
            temp.append(b)
            res.append(temp)
            temp = []

    except StopIteration:
        break

print(res)
# [['i', 'would', 'like', 'to', 'go', 'to', 'the', 'store', '<s>'], ['i', "'d", 'like', 'to', 'go', 'to', 'a', 'fancy', 'restaurant', '<s>']]

答案 2 :(得分:0)

将结果添加到列表中,找到结束后将其重置,在这种情况下为<s>

wordlist = ['i', 'would', 'like', 'to', 'go', 'to', 'the', 'store', '<s>', 'i', "'d", 'like', 'to', 'go', 'to', 'a', 'fancy', 'restaurant','<s>']
results = []
result = []

for word in wordlist:
    if word == '<s>':
        result.append(word)
        results.append(result)
        result = []
    else:
        result.append(word)

results中的最终输出:

[['i', 'would', 'like', 'to', 'go', 'to', 'the', 'store', '<s>'],
 ['i', "'d", 'like', 'to', 'go', 'to', 'a', 'fancy', 'restaurant', '<s>']]