Вот вопрос ниже:Функция подсчета повторяющихся слов в текстовом файле? (Python)
Вопрос 12
Написать функцию с именем repeatWords(). Функция repeatWords() принимает два строковых параметра: имя входного файла и имя выходного файла. Входной файл содержит только строчные буквы и пробелы. Функция repeatWords() должна идентифицировать слова (слова), которые появляются более одного раза в файле и записывать каждое такое слово в строку выходного файла, за которым следует число раз, которое появляется в поле . Повторное слово должно быть записано только в одну строку выходного файла, независимо от того, сколько раз оно появляется во входном файле. Порядок, в котором слова записываются в выходной файл , не имеет значения. Например, если входной файл содержит следующие строки:
i would not like them here or there
i would not like them anywhere
Затем выходной файл следующие строки будет правильно:
like 2
not 2
i 2
would 2
them 2
Вот мой код. Я просто не знаю, как получить оператор if, когда дело доходит до определения числа в счетчике больше 1 (больше или равно 2).
def repeatWords(inFile, outFile):
from collections import Counter
outFile = open(outFile, 'w')
with open(inFile, 'r') as f:
wordcount = Counter(f.read().split())
for item in wordcount.items():
if item >= 2:
outFile.write("{} {}".format(*item))
print(repeatWords('input.txt','output.txt'))
Также я не начал участвовать в коде еще где я должен рассчитывать только повторяющиеся слова
Да, ваш ответ правильный! Но еще одно: print ("{} {} \ n" .format (word, count)) - это способ сделать это, чтобы перейти к следующей строке. – Jorgan
@Jorgan 'print' автоматически добавляет новую строку, если не указано иное. Ваш пример печатает пустую строку между каждым результатом, обратите внимание, что вы достигнете того же результата, передав параметр 'end' на [' print'] (https://docs.python.org/3.5/library/functions.html#print) : 'print (" {} {} ". format (word, count), end = '\ n \ n')' – niemmi