在列表中连接由标记分隔的单词

时间:2019-03-16 18:06:09

标签: python list loops set concatenation

我想在单词列表中连接一个用星号分隔的单词。我正在尝试的代码是:

import nltk
from nltk.tokenize import word_tokenize
import re

words = ['les','engage', '*', 'ment', 'de','la']

with open ('Fr-dictionary.txt') as fr:
    dic = word_tokenize(fr.read().lower())

l=[ ]
errors=[ ]

for n,word in enumerate (words):
    l.append(word)
    if word == "*":
        print(words[n-1], words[n+1])
        exp = words[n-1] + words[n+1]
        if exp in dic:  
            l.append(exp)
            errors.append(words[n-1])
            errors.append("*")
            errors.append(words[n+1])
        else:
            continue

print(l)
print(errors)


l=frozenset(l)
errors=frozenset(errors)

c=l.difference(errors)

print(list(c)) 

我的输出是:

['la', 'les', 'de', 'engagement'] 

但是我想要的输出必须与原始列表的顺序相同,但不能:

['les','engagement', 'de','la']

还有其他方法来获得所需的输出吗?

1 个答案:

答案 0 :(得分:0)

尝试

    while "*" in words:
        index = words.index("*")
        words.pop(index)
        words.insert(index,words.pop(index-1)+words.pop(index-1))