python counter函数_Python中的魔法函数——Counter
Python的標準庫collections中有很多魔法函數,可以使平時的數據處理非常高效,今天介紹一個很好用的計數函數——Counter。
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 Counterc?=?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)]
當對數量巨大、且重復記錄多的字典對象進行匯總計數操作時,Counter函數能夠非常方便、高效的勝任此項工作。
總結
以上是生活随笔為你收集整理的python counter函数_Python中的魔法函数——Counter的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Google SketchUp SKP文
- 下一篇: amoeba mysql下载_amoeb