次のリストが与えられた
['Jellicle', 'Cats', 'are', 'black', 'and', 'white,', 'Jellicle', 'Cats',
'are', 'rather', 'small;', 'Jellicle', 'Cats', 'are', 'merry', 'and',
'bright,', 'And', 'pleasant', 'to', 'hear', 'when', 'they', 'caterwaul.',
'Jellicle', 'Cats', 'have', 'cheerful', 'faces,', 'Jellicle', 'Cats',
'have', 'bright', 'black', 'eyes;', 'They', 'like', 'to', 'practise',
'their', 'airs', 'and', 'graces', 'And', 'wait', 'for', 'the', 'Jellicle',
'Moon', 'to', 'rise.', '']
各単語が表示される回数を数えて、上位3つを表示しようとしています。
ただし、最初の文字が大文字になっている上位3つを探しているだけで、最初の文字が大文字になっていないすべての単語を無視します。
これよりも良い方法があると確信していますが、私の考えは次のことを行うことでした。
- リストの最初の単語をuniquewordsという別のリストに入れます
- 最初の単語とその重複するすべての単語を元のリストから削除します
- 新しい最初の単語を一意の単語に追加します
- 最初の単語とその重複するすべての単語を元のリストから削除します。
- 等...
- 元のリストが空になるまで...
- 一意の単語の各単語が元のリストに表示される回数を数える
- トップ3を見つけて印刷する