这是编程中一个有趣且经常解决的任务,在NLP和曾夫人论坛科学中尤其普遍。通常有一个清单“things”有很多重复,并想知道哪些是最受欢迎的。
资料范例
1 |
我的清单 = [1,1,1,1,5,5,5,3,2,2,2,3,4,5,5,5,5,5,5,6,6,6,6] |
要么:
1 |
my_sentence = “猫坐在垫子上看报纸” |
哪个最受欢迎的号码?最受欢迎的字母是哪一个?
编码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
从 馆藏 进口 定义aultdict 从 算子 进口 项目获取器 定义 freq_table(l): ”“获取列表'l'并返回列表列表 每个项目都是['item',frequency],已排序 descending."” all_freqs = 定义aultdict(整型) #暂时保存值 对于 项目 在 l: all_freqs[项目] + = 1 #添加到字典 #将字典转换为列表列表 all_freqs = [[k,v] 对于 k,v 在 all_freqs.重复项()] #返回排序后的版本 返回 已排序(all_freqs, 键=项目获取器(1), 逆转=真正) |
对于我们的曾夫人论坛,我们现在得到:
1 2 |
>>> freq_table(我的清单) [[5, 9], [1, 4], [6, 4], [2, 3], [3, 2], [4, 1]] |
所以5是最受欢迎的项目,有9个出场。
1 2 |
>>> freq_table(my_sentence) [['', 9], ['一种', 7], ['e', 5], ['t', 4], ['n', 3], ['d', 2], ['H', 2], ['p', 2], [的, 2], ['r', 2], ['C', 1], ['m', 1], ['o', 1], ['T', 1], ['w', 1]] |
因此,空间是最受欢迎的,其次是a,e和t。