python 對給定可迭代集合統計出現頻率,並排序
阿新 • • 發佈:2019-01-30
給定一個可迭代sequence,對其中的值進行出現次數統計:
方法1:
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
from collections import defaultdict
def get_counts2(sequence) :
counts = defaultdict(int) #所有的值均會被初始化為0
for x in sequence:
counts[x] +=1
return counts
方法3:
from collections import Counter
counts = Counter(sequence)
#其中可以用counts.most_common(10)對出現最多的十個倒序排列
然後對得到的統計排序:
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:]