1

Я пытался задать переменную, которая бы показывала кол-во обнаруженных совпадающих слов из массива massive в файле example.txt, но у меня никак это не получается сделать.

path='input/example.txt'
massiv = ['Иван', 'Сергей', 'Саша', 'Маша', 'Таня'] 

n=len(massiv) # определение размера массива 

def match_doc(): # функция находит совпадения слов из массива massiv в файле example.txt
    count=0
    for i in range(n):
        with open(path) as content:
           print('word found '+massiv[i] if massiv[i] in content.read() else  'This word '+massiv[i]+' not found')
    return i

match_doc()
Twiss
  • 6,393
  • вы хотите аналог grep -cFf massive example.txt? (печатает количество строк из example.txt, которые содержат слова (подстроки) из massive (одно слово на строку)). – jfs Jan 22 '18 at 08:11
  • ссылка показывает аналог решения grep -Fof massive example.txt | sort | uniq -c то есть выводит количество слов из massive, которые в example.txt присутствуют. Вам какой вариант нужен первый или второй? – jfs Jan 22 '18 at 08:19
  • Второй вариант мне больше подходит –  Jan 23 '18 at 05:28
  • вы хотите частоты слов как по ссылке показано (строки <слово> <сколько раз встречается>) или просто сколько слов хоть раз появились вообще как в ответе @gil9red (одно число от 0 до len(massive))? – jfs Jan 23 '18 at 13:23

1 Answers1

0

Примерно так:

path = 'input/example.txt'
massiv = ['Иван', 'Сергей', 'Саша', 'Маша', 'Таня']

n = len(massiv) # определение размера массива

def match_doc(): # функция находит совпадения слов из массива massiv в файле example.txt count = 0 for i in range(n): with open(path) as content: if massiv[i] in content.read(): count += 1 print('word found ' + massiv[i]) else: print('This word ' + massiv[i] + ' not found')

return count

print('found:', match_doc())

gil9red
  • 77,085
  • Спасибо, большое. То что нужно. Все заработало. Вопрос снят –  Jan 23 '18 at 05:26
  • Пометьте вопрос как правильный – gil9red Jan 23 '18 at 05:51