Day 132トップKをheapqで高速に求める

2026-07-06 JST ・ 難易度: 実用 ・ カテゴリ: 実用集計

Pythonコード

1import heapq2 3text = 'apple banana apple orange banana banana'4words = text.split()5word_count = {}6for word in words:7    if word in word_count:8        word_count[word] += 19    else:10        word_count[word] = 111 12k = 313try:14    k = int(input('トップ何件表示しますか?'))15except ValueError:16    print('数値を入力してください')17    k = 3  # デフォルト値18 19top_k = heapq.nlargest(k, word_count, key=word_count.get)20print('トップ{}件の単語は'.format(k))21for word in top_k:22    print('{}: {}回'.format(word, word_count[word]))

解説

次に試してみよう