python中counter怎么用_带你走进python 计数器类Counter的用法
什么是Counter?
Counter 是一個在collections包里的類,正如其名,是一個用于計數的工具。
我們可以用Counter(nums)這樣的構造函數構造一個Counter類,其中nums是一個列表。
構造好的Counter實例可以看作一個字典,鍵是nums的每一項,值是它的出現次數。
如果上面的敘述讓你感到很混亂的話,我不妨舉個例子:
如果一個列表a = [1,1,3,4,3],你想要統計每項的出現次數,那么你使用b = Counter(a),那么這時候b就像一個這樣的字典{1:2,3:2,4:1},表示數字1出現了2次,數字3出現了2次,數字4出現了1次。
Counter函數的功能主要是計數器,特別是在對源數據是字典類型的數據進行計數時,如果不想寫冗長繁瑣的for循環,那么使用Counter函數將是一個不錯的選擇。
這里以一個簡單的計數場景來演示,假設我們有一組以顏色名稱和顏色數量為鍵值對的字典對象,我們需要對同一種顏色進行累計計數(字典中可能有多組同一顏色的鍵值對),看起來似乎只能使用笨笨的循環來進行操作了。colors = [{'red':4},{'blue':5},{'red':8},{'green':7},{'blue':8},{'blue':10},{'green':12}]
使用比較傳統的循環方法:result = {}
for i in colors:
if list(i.keys())[0] not in result:
result[list(i.keys())[0]] = list(i.values())[0]
else:
result[list(i.keys())[0]] += list(i.values())[0]
{'red': 12, 'blue': 23, 'green': 19}
如果這里使用collections標準庫中的Counter函數,則整個過程會無比簡單:
Counter函數:from collections import Counter
c = Counter()
for i in colors:
c[list(i.keys())[0]] += list(i.values())[0]
Counter({'blue': 23, 'green': 19, 'red': 12})
這里Counter容器實現了一個自動化的計數器,當Counter中不存在某個鍵時,賦值操作會自動創建一個新的鍵,而不是像方法一中那樣需要手動去判斷某個鍵是否已經存在在字典里面。
除此之外,Counter神奇的地方在于它有很多可以簡單調用的統計方法,比如我們想要獲取結果中正序/倒序的TOPN記錄,則可以直接這樣寫:c.most_common(2)[('blue', 23), ('green', 19)]
總結
以上是生活随笔為你收集整理的python中counter怎么用_带你走进python 计数器类Counter的用法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 微信小程序 + 腾讯位置服务SDK 实现
- 下一篇: 关于Counter