У меня есть список (words.txt), для которого мне нужен метод поиска, который точнее, чем findline.Более точная альтернатива findline?
Моя текущая функция (показана внизу) использует findline
для поиска по списку. Проблема заключается в следующем: вместо того, чтобы возвращать точное соответствие, findline
возвращает первую строку, содержащую целое слово, независимо от того, следуют ли за ним лучшие совпадения.
Пример: Я вхожу в «BEES», а findline возвращает «BAUBEES», потому что это первая строка, содержащая подстроку («BEES»). Конечно, это полностью разрушает функцию.
Мне нужна функция или (желательно) встроенный метод, который выглядит в алфавитном порядке для точного соответствия. Поэтому, если «BEES» находится в списке (я уверяю вас это), я хочу, чтобы он вернул «ПЧЕЛ». Или поочередно, если «BAUBEES» и «BEESWAX» были единственными подстрочными совпадениями в списке, идеальная функция вернула бы «BEESWAX», хотя бы потому, что вторая буква в «BEES» равна «E» NOT «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
К сожалению, я вышел из определения findline как идиот: Защиту findline (слово, Linz): для линии в Линце: если слово в строке: обратной линия Благодарность larsmans, я дам это попытка и отчитаться! – laststandelectronics
Хорошо, попробовал это и получил три ответа: <_ sre.SRE_Match объект в 0xa6151e0> – laststandelectronics
def find (word, letter): index = 0 while index
laststandelectronics