ちょっと、作ってみました。
python
1def top_ten(list_txt, top = 10):
2 list_lower = [w.lower() for w in list_txt]
3 b_dict = {}
4 for i in set(list_lower):
5 try:
6 b_dict[list_lower.count(i)].append(i)
7 except:
8 b_dict[list_lower.count(i)] = [i]
9 b_tp = sorted(b_dict.items(), key=lambda x:x[0], reverse=True)
10 rank = 0
11 a_tp = []
12 for r, wordslist in b_tp:
13 a_tp += [(word, r) for word in wordslist]
14 rank += len(wordslist)
15 if rank >= top:
16 break
17 a_dict = dict(a_tp)
18 return a_dict
実行結果は以下です。
python
1>>> list_txt = ["a", "aa", "A", "BC", "BC", "d", "e", "f", "d", "e", "f", "g", "h", "i", "j", "k", "l", "g", "h", "i", "j", "k", "m"]
2>>> print(top_ten(list_txt))
3{'e': 2, 'j': 2, 'a': 2, 'd': 2, 'g': 2, 'h': 2, 'k': 2, 'f': 2, 'bc': 2, 'i': 2}
4>>> list_txt = ["a", "aa", "A", "BC", "BC", "d", "e", "f", "d", "e", "ff", "g", "h", "i", "j", "k", "l", "g", "h", "i", "j", "k", "m"]
5>>> print(top_ten(list_txt))
6{'e': 2, 'j': 2, 'a': 2, 'd': 2, 'g': 2, 'h': 2, 'k': 2, 'bc': 2, 'i': 2, 'aa': 1, 'l': 1, 'm': 1, 'ff': 1, 'f': 1}