【python】collections的使用
阿新 • • 發佈:2018-09-10
font pen mos 科技 imp div set -s adl
老師布置了一個課後作業。
統計文本中字母出現的次數並找到最大的那一個
首先是讀取文本吧。和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 inlines: 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
【python】collections的使用