Разбор списка слов в питоне - PullRequest
1 голос
/ 07 марта 2011

У меня есть файл wlist.txt, содержащий около 58 тыс. Слов английского языка, небольшая выдержка которого выглядит следующим образом:перечислите и посмотрите, содержится ли слово в списке, и если да, выведите слово.Моя проблема в том, что код, который я написал, будет постоянно возвращать, что нет, слова нет в списке, когда я точно знаю, что это так.Мой код выглядит так, кто-нибудь замечает какие-либо ошибки?

match = 'aardvark'
f = 'wlist.txt'
success = False
try:
    for word in open(f):
        if word == match:
            success = True
            break
except IOError:
    print f, "not found!"
if success:
    print "The word has been found with a value of", word
else:
    print "Word not found"

Заранее всем спасибо !!

Ответы [ 11 ]

0 голосов
/ 07 марта 2011
class WordMatcher(object):
    @classmethod
    def fromFile(cls, fname):
        with open(fname) as inf:
            return cls(inf)

    def __init__(self, words):
        super(WordMatcher,self).__init__()
        self.words = set(word.strip().lower() for word in words)

    def __contains__(self, word):
        return word.strip().lower() in self.words

    def goodWords(self, lst):
        _sw = self.words
        for word in lst:
            word = word.strip().lower()
            if word in _sw:
                yield word

wordlist = WordMatcher.fromFile('wordlist.txt')

'abase' in wordlist   # -> True
list(wordlist.goodWords(['Abandon', 'abased\n', 'xyzzy']))  # -> ['abandon','abased']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...