给定一个可迭代sequence,对其中的值进行出现次数统计:
方法1:
1
2
3
4
5
6
7
8
|
def get_counts(sequence):
counts = {}
for x in sequence:
if x in counts:
counts[x] + = 1
else :
counts[x] = 1
return counts
|
方法2:
利用python中内置的collections
1
2
3
4
5
6
7
|
from collections import defaultdict
def get_counts2(sequence):
counts = defaultdict( int ) #所有的值均会被初始化为0
for x in sequence:
counts[x] + = 1
return counts
|
方法3:
1
2
3
4
|
from collections import Counter
counts = Counter(sequence)
#其中可以用counts.most_common(10)对出现最多的十个倒序排列
|
然后对得到的统计排序:
1
2
3
4
5
|
def top_count(count_dic, n = 10 ): #默认取最大的n=10个值
value_key_pairs = [(count,data) for counts,data in cout_dict.items()]
value_key_pairs.sort()
#sorted(value_key_pairs) 两者均可
return value_key_pairs[ - n:]
|
以上这篇python 对给定可迭代集合统计出现频率,并排序的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持服务器之家。
原文链接:https://blog.csdn.net/xiaodongxiexie/article/details/52960091