Форум сайта python.su
Здравствуйте ! Подскажите, пожалуйста, как сравнить два списка (2 файла).
Условия: даны 2 списка. В обоих списках слова, только в одном списке для каждого слова даны еще количественные параметры его употребления.
Если грубо, то файлы так организованы.
1 список:
Пайтон
смыл
жизни
2 список:
Пайтон 4
Монти 4
жизни 2
по 6
Задача: как сравнить эти два списка и при совпадении единиц в этих двух списках вывести в отдельом файле не только совпадающие слова, но и их параметры, т.е. Пайтон 4, жизни 2.
Что тут лучше использовать, какие функции, словари, списки….не программист, в терминологии не очень разбираюсь.
Буду признательна за Вашу помощь !
Офлайн
Примерно будет так:
- создаем пустой словарь (dict) для хранения word -> score
- открываем файл, где слова с номерами “file2.txt”.
- читаем каждую строку, очищаем ее от лишних пробелов и переводов строки
- разделяем каждую строку по пробелу и сохраняем в словаре: ключом будет слово, значением число
- потом читаем построчно первый файл со словами “file1.txt”
- каждую строку очищаем, получая слово
- проверяем есть ли слово в словаре, если есть печатаем слово и число.
#!/usr/bin/env python with open('file2.txt') as f: scored_words = dict(line.strip().split() for line in f) with open('file1.txt') as f: for line in f: word = line.strip() if word in scored_words: print word, scored_words[word]
Отредактировано reclosedev (Июнь 2, 2012 19:13:50)
Офлайн
здорово! спасибо большое !!!!!!!
а как условие усложнить в цикле: чтобы на печать вывел не только те слова, которые есть в дрвух списках, но и те слова, которых нет в file2, т.е. взять те слова, на которые есть дополнительные параметры в file2, но напечатать все слова, которые есть в file1.
ах. попробую просто вывести несовпадающие, а потом соединить оба вывода.
Отредактировано leona (Июнь 2, 2012 20:07:40)
Офлайн