我想在单词列表中连接一个用星号分隔的单词。我正在尝试的代码是:
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']
还有其他方法来获得所需的输出吗?
答案 0 :(得分:0)
尝试
while "*" in words:
index = words.index("*")
words.pop(index)
words.insert(index,words.pop(index-1)+words.pop(index-1))