"""Count words.""" def count_words(s, n): """Return the n most frequently occuring words in s.""" # TODO: Count the number of occurences of each word in s word = s.split() worddict = {} for item in word: if item not in worddict: worddict[item] = 1 else: worddict[item] += 1 # TODO: Sort the occurences in descending order (alphabetically in case of ties) sortedWorddict = sorted(worddict.iteritems(), key = lambda x:(-x[1],x[0]), reverse = False) # TODO: Return the top n words as a list of tuples (<word>, <count>) top_n = [] for i in range(n): top_n.append(sortedWorddict[i]) return top_n def test_run(): """Test count_words() with some inputs.""" print count_words("cat bat mat cat bat cat", 3) print count_words("betty bought a bit of butter but the butter was bitter", 3) if __name__ == '__main__': test_run()