Найти - Пользователи
Полная версия: сравнение двух списков
Начало » Центр помощи » сравнение двух списков
1
leona
Здравствуйте ! Подскажите, пожалуйста, как сравнить два списка (2 файла).
Условия: даны 2 списка. В обоих списках слова, только в одном списке для каждого слова даны еще количественные параметры его употребления.
Если грубо, то файлы так организованы.
1 список:
Пайтон
смыл
жизни
2 список:
Пайтон 4
Монти 4
жизни 2
по 6

Задача: как сравнить эти два списка и при совпадении единиц в этих двух списках вывести в отдельом файле не только совпадающие слова, но и их параметры, т.е. Пайтон 4, жизни 2.

Что тут лучше использовать, какие функции, словари, списки….не программист, в терминологии не очень разбираюсь.
Буду признательна за Вашу помощь !
reclosedev
Примерно будет так:
- создаем пустой словарь (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]
Если слова будут из русских букв, нужно будет еще кодировку учитывать. Также, не будет лишним дать возможность указывать имена файлов пользователю, и т.п.
leona
здорово! спасибо большое !!!!!!!

а как условие усложнить в цикле: чтобы на печать вывел не только те слова, которые есть в дрвух списках, но и те слова, которых нет в file2, т.е. взять те слова, на которые есть дополнительные параметры в file2, но напечатать все слова, которые есть в file1.


ах. попробую просто вывести несовпадающие, а потом соединить оба вывода.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB