2016-11-14 3 views
0

Я пытаюсь создать функцию для поиска слов в строке без пробела: 'Daysaregood'. i итерации для каждой буквы, пока я не найду, существует ли слово, сравнивая со списком на основе уже итерированного письма, используя заклинание зачарования модуля. и это то, что я пробовал:Python: найти слова в строке без пробела

import enchant 
import time 


fulltext =[] 
def work(out): 

     if len(out)>0: 


      word = '' 
      wd = "" 
      # iterate for every Letter 
      for i in out: 
       word = word + i 
       print word 
       d = enchant.Dict('en_US') 
       # a list of words to compare to 
       list = d.suggest(word.title()) 
       print list 
       #check if word exists 
       if word.title() in list : 
        print 'Word found' 
        wd = word 
       else: 
        print 'Word not found' 



      print '\n'+wd 
      fulltext.append(str(wd)) 

      time.sleep(2) 
      work(out[len(wd):]) 
     else: 
      print '\n fulltext : ' 
      print fulltext 



word="Daysaregood" 
work(word) 

Теперь для этого текста скрипты работает как я хочу, я получаю список, как это: [ «Days», «являются», «хорошие»]. Но когда я пытаюсь что-то вроде «spacehuttle», функция путается с «пробелом» и ставит «s» в «челночном», поэтому я получаю это: ['пробелы', 'хижина', 't', 'l ',' e ']. Моя цель - вернуть каждое слово и сохранить их в списке. Любая помощь приветствуется.

ответ

3

Проблема с вашей задачей заключается в том, что желаемый результат не соответствует строгим правилам. Если бы вы ввели 'pineapple', вы ожидали бы ['pine', 'apple'] или ['pineapple']? Было бы трудно/невозможно предсказать это.