擅长:python、mysql、java
<p>代码的主要问题是,一方面,在<code>for</code>循环中迭代<code>words</code>,另一方面,通过迭代器<code>myit</code>。这两个迭代是独立的,因此不能在循环中使用<code>next(myit)</code>来获取<code>i</code>之后的单词(同样,如果<code>i</code>是最后一个单词,那么就不会有下一个单词)。另一方面,你的问题可能会变得复杂,因为字典里可能有拆分的单词,其部分太多(例如<code>printable</code>是一个单词,但<code>print</code>和<code>able</code>也是一个单词)。你知道吗</p>
<p>假设一个简单的场景,拆分的单词部分永远不会出现在字典中,我认为这个算法对您来说会更好:</p>
<pre><code>import enchant
words = ['love', 'friend', 'car', 'apple', 'com', 'puter', 'vi']
myit = iter(words)
dic = enchant.Dict('en_UK')
lst = []
# The word that you are currently considering
current = ''
for i in words:
# Add the next word
current += i
# If the current word is in the dictionary
if dic.check(current):
# Add it to the list
lst.append(current)
# Clear the current word
current = ''
# If the word is not in the dictionary we keep adding words to current
print(lst)
</code></pre>