【python】collections的使用

老师布置了一个课后作业。

统计文本中字母出现的次数并找到最大的那一个

首先是读取文本吧。和c里的也差不多,打开,关闭,读取。

 1 path = 'YourPath' 2 f = open(path) 3 f.close() 

 

然后就用到了这个黑科技。collections里的Counter。计数功能很强大。

代码:

 1 from collections import Counter
 2 
 3 path = 'YourPath'
 4 f = open(path)
 5 lines = f.readlines()
 6 strs = []
 7 for line in lines:
 8 
 9     for i in line:
10         if i >= 'a' and i <= 'z':
11             strs.append(i)
12         if i >= 'A' and i <= 'Z':
13             strs.append(i)
14 #print(Counter(strs))
15 print(Counter(strs).most_common(1))
16 f.close()

导入模式如上图。Counter可以对list里的元素计数。并且有专门的方法调用返回最大值,并且默认返回最大值的值以最大值那个数。

常用操作:

 1 # 所有计数的总数
 2 sum(c.values())
 3 # 重置Counter对象,注意不是删除
 4 c.clear()
 5 # 将c中的键转为列表
 6 list(c)
 7 # 将c中的键转为set
 8 set(c)
 9 # 将c中的键值对转为字典
10 dict(c)  
11 #取出计数最多的n个元素
12 c.most_common(n)
13 # 取出计数最少的n-1个元素
14 c.most_common()[:-n:-1]
15 # 移除0和负值
16 c += Counter()  

 


 

有任何好的见解或者我有任何错误都请评论鸭qwq

posted @ 2018-09-10 16:25  甜酒果。  阅读(248)  评论(2编辑  收藏  举报