Форум сайта python.su
Всем доброго времени суток, хотел узнать, каким образом оптимальнее сравнить два текстовых файла (по сути словаря, в каждом по 500,000 строк) на предмет наличия в них одинаковых слов. Прошу прощения, если не корректно ставлю вопрос, все-таки в программировании не силен, интересует, что лучше использовать списки, словари и какие функции для их обработки?
Офлайн
А у вас слова в файлах отсортированы? Если да - то ни списков ни словарей не нужно. Если нет - проще воспользоваться словарем - загрузить меньший их двух файлов - второй читать и проверять наличие слова. Гарантировать оптимальность не могу, но есть много способов сделать работу намного медленнее. Кстати много зависит еще от того как вы будете читать слова из файла.
Офлайн
Я так сравниваю на данный момент:
for word in open('english10.dic',"r"):
for decode in open('decode_SLVTSSDADP.txt',"r"):
if decode == word:
print 'Найдено совпадение: ',decode
print ' Проверка завершена.'
Офлайн
wordset=set([decode in open('decode_SLVTSSDADP.txt',"r")])
for word in open('english10.dic',"r"):
if word in wordset:
print 'Найдено совпадение: ',decode
print ' Проверка завершена.'
Офлайн
ну явно видно что код у тс читает файл decode_SLVTSSDADP.txt сколько слов в english10.dic :) что не есть тру
Офлайн
sp3Поподробнее можно, не понимаю о чем речь, ведь каждое слово из english10.dic ищется на соответсвие в decode..txt
ну явно видно что код у тс читает файл decode_SLVTSSDADP.txt сколько слов в english10.dic :) что не есть тру
Офлайн
doza_andЯ в шоке, дополнил скрипт таймером и сравнил:
Былобы интересно насколько отличаются способы по быстродействию если будете сравнивать отпишитесь пожалуйста.
from timeit import timeit
def compare():
for word in open('english10.dic',"r"):
for decode in open('decode_SLVTSSDADP.txt',"r"):
if decode == word:
print 'Найдено совпадение: ',decode
compare()
print 'Status ...OK'
print(timeit('compare()','from _main__ import compare',number = 1))
wordset=set([DECODE FOR decode in open('decode_SLVTSSDADP.txt',"r")])
Отредактировано (Апрель 12, 2011 12:28:50)
Офлайн
Рад был оказать содействие, извините что была ошибочка я просто не запускал - изложил идею.
Офлайн
ТСу срочно читать, что такое класс сложности.
Офлайн