Как мне напечатать только (нижнюю) часть словаря в python3? - PullRequest
0 голосов
/ 06 октября 2019

Я создал словарь, посчитав список положительных слов (positives.txt) поверх списка твитов (tweets.txt). Сейчас я пытаюсь напечатать топ-5 использованных позитивных слов с соответствующими оценками. Мне удалось отсортировать оценки и напечатать весь список слов с их оценками, например:

(остаток списка ...) wordx 5 wordy 28 wordz 35

Моя цельдолжен напечатать (только) топ 3:

wordz 35 wordy 28 wordx 5

Я пытался указывать индексы в разных местах, но продолжаю получать сообщения об ошибках, такие как: Traceback (последний вызов последний):

print(word[3], score[3])

IndexError: string index out of range
    print(word[0:5], score[0:5])
  TypeError: 'int' object is not subscriptable

Текущий код:

def positive_word(tweets, positives):
    """prints the top 5 most used positive words"""

    x = {}
    #for l in range(5):
    for l in range(len(positives)):
        x[positives[l]] = 0
    #for m in range (5):
    for m in range (len(tweets)):
        #for n in range (5):
        for n in range (len(positives)):
            if positives[n] in tweets[m]:
                x[positives[n]] += 1

    for word, score in sorted(x.items(), key = lambda key : key[1]):
        print(word, score)
...