У меня есть список (words.txt), для которого мне нужен метод для поиска, который является более точным, чем findline.
Моя текущая функция (показанная внизу) использует findline
для поиска в списке.Проблема заключается в следующем: вместо точного совпадения findline
возвращает первую строку, содержащую целое слово, независимо от того, есть ли после него лучшие совпадения.
Пример: я ввожу 'BEES' и findlineвозвращает «BAUBEES», потому что это первая строка, содержащая подстроку («BEES»).Конечно, это полностью разрушает функцию.
Мне нужна функция или (предпочтительно) встроенный метод, который ищет в алфавитном порядке для точного соответствия.Поэтому, если в списке есть «Пчелы» (я вас уверяю, что это так), я хочу, чтобы она возвращала «Пчелы».Или же, если бы «BAUBEES» и «BEESWAX» были единственными совпадениями подстрок в списке, идеальная функция вернула бы «BEESWAX» хотя бы потому, что вторая буква в «BEES» - это «E», а не «A» (как в «BAUBEES ').
def iswholeword(word):
openfile = open('/media/Gianson/Python Programs/words.txt','r')
linz = openfile.readlines()[:]
openfile.close()
hit = findline(word,linz)[:]
print 'hit', hit
if len(hit)-1 == len(word):
return True
else:
return False