Использование фиктивного файла (streamt.txt) со следующим содержимым:
andrew I hate mondays.
fred Python is cool.
fred Ko Ko Bop Ko Ko Bop Ko Ko Bop for ever
andrew @fred no it isn't, what do you think @john???
judy @fred enough with the k-pop
judy RT @fred Python is cool.
andrew RT @judy @fred enough with the k pop
george RT @fred Python is cool.
andrew DM @john Oops
john DM @andrew Who are you go away! Do you know him, @judy?
Первое слово каждой строки представляет пользователя, а остальная часть - это сообщение, похожее на твиттер.Мне нужно распечатать список лучших n (введенных пользователем) исходных пользователей (большинство сообщений) рядом с количеством отправленных ими сообщений.
Это не включает в себя никаких сообщенийс «RT» в начале.Отформатированный в выровненных столбцах в лексикографическом порядке в случае связей.
В моем нынешнем виде мой код находит только наиболее часто используемые слова в сообщениях и не исключает сообщения RT и DM или учетную запись для n:
file=open('streamt.txt')
counts=dict()
for line in file:
words=line.split()
for word in words:
counts[word]=counts.get(word, 0)+1
lst=list()
for key,value in counts.items():
new=(value, key)
lst.append(new)
lst=sorted (lst, reverse=True)
for value, key in lst[:10]:
print(value,key)
Это мой вывод:
6 Ko
5 @fred
4 andrew
3 you
3 is
3 cool.
3 RT
3 Python
3 Bop
2 with
Фактический вывод должен быть:
Enter n: 10
3 andrew
2 fred
1 john judy
Есть какие-нибудь идеи относительно того, как я должен это сделать?