Я уже задал этот вопрос для моего домашнего задания, используя счетчик. Теперь я изучаю этот же вопрос для финала. Я хотел бы запомнить словари, а не счетчики для этого финала. Я попытался решить эту проблему, используя словарь.Функция repeatCount не дает мне правильного ответа. Почему это происходит?
Таким образом, проблема заключалась в создании имени функции repeatCount. Цель этой функции - прочитать каждую строку входного файла, определить количество слов в строке, которые происходят более одного раза, и записать это число в строку в выходном файле.
Текст входного файла заключается в следующем:
Woke up this morning with an ache in my head
I splashed on my clothes as I spilled out of bed
I opened the window to listen to the news
But all I heard was the Establishment Blues
Мой выходной файл должен выглядеть следующим образом:
0
2
3
2
Правильный выход:
0
1
2
0
Так вот мой код Теперь. Что определенная часть моего кода приводит к Python, чтобы произвести меня неправильный ответ ?:
def repeatCount(inFile, outFile):
inF = open(inFile, 'r')
outF = open(outFile, 'w')
d = {}
for line in inF.readlines():
count = 0
words = line.split()
for word in words:
if word not in d:
d[word] = 1
elif word in d:
d[word] += 1
if d[word] > 1:
count += 1
outF.write(str(count) + "\n")
print(repeatCount('inputFile.txt', 'outputFile.txt'))
Это помогло! Ответ человека выше меня сделал то же самое, но он изменил мой код еще немного. Я просто следовал тому, что вы сказали, и это просто дало мне правильный ответ! – Jorgan