Основная логика - отслеживать предыдущее слово. Если текущее слово соответствует, накапливать счет. Если нет, напечатайте предыдущее слово и его счет и начните все сначала. Есть небольшой специальный код для обработки первой и последней итераций.
stdin_data = [
"a 2",
"file 1",
"file 2",
"file 4",
"for 1",
"has 1",
"is 2",
"lines 1",
"small 1",
"small 2",
"test 1",
"test 2",
"this 1",
"this 2",
"two 1",
]
previous_word = ""
word_ct = 0
for line in stdin_data:
word, count = line.split()
if word == previous_word:
word_ct += int(count)
else:
if previous_word != "":
print(previous_word, word_ct)
previous_word = word
word_ct = int(count)
# Print the final word and count
print(previous_word, word_ct)
Выход:
a 2
file 7
for 1
has 1
is 2
lines 1
small 3
test 3
this 3
two 1