1 input = """Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec in ante ipsum, in congue urna. Nulla dictum egestas lectus ac auctor. Mauris consequat adipiscing odio, sit amet mattis dolor viverra vitae. Donec convallis mollis metus sit amet cursus. Proin venenatis purus id turpis pharetra placerat fringilla magna blandit. Proin venenatis, tortor fermentum mattis gravida, nunc elit congue purus, et faucibus eros nulla ac ligula. Nulla et dignissim enim. Duis commodo molestie sapien, a facilisis massa porttitor quis. Morbi leo nulla, egestas volutpat suscipit non, porttitor blandit lectus. Nunc vitae nunc quis leo eleifend posuere vel a augue. Ut molestie elit ut lorem posuere adipiscing. Quisque et felis nec nibh blandit ullamcorper. 2 3 Mauris feugiat pulvinar urna, et volutpat tellus gravida et. Nulla feugiat tincidunt quam, ac laoreet velit vestibulum ut. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Integer tincidunt risus id sapien fermentum a adipiscing ipsum fringilla. Sed accumsan arcu et purus malesuada et eleifend magna sodales. Proin dignissim pharetra justo sit amet condimentum. Aliquam justo urna, vestibulum eget fringilla non, aliquet nec lacus. Phasellus a enim non mauris venenatis varius. Mauris mattis, turpis vel cursus rutrum, lorem ante posuere lorem, eu posuere lectus velit placerat velit. In congue pretium viverra. """ 4 5 # split into paragraphs 6 paragraphs = input.split("\n\n") 7 lastTop5 = [] 8 p = 1 9 for paragraph in paragraphs: 10 # count of chars/nums in paragraph 11 charCounts = {} 12 for c in [c for c in paragraph if c.isalnum()]: 13 charCounts[c] = charCounts.setdefault(c, 0) + 1 14 15 # sort all character counts 16 sortedChars = sorted(charCounts.items(), key=lambda(k,v):v) 17 18 # filter out the last top 5 chars 19 filteredChars = [c for c in sortedChars if c[0] not in lastTop5] 20 21 # print top 10 22 print "Most used in paragraph #%d:" % p 23 print map(lambda c: c[0], filteredChars[-10:]), "\n\n" 24 25 # top 5 in paragraph 26 lastTop5 = [c[0] for c in filteredChars[-5:]] 27 p += 1