日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

python counter函数_Python中的魔法函数——Counter

發(fā)布時(shí)間:2023/12/18 python 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python counter函数_Python中的魔法函数——Counter 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

Python的標(biāo)準(zhǔn)庫collections中有很多魔法函數(shù),可以使平時(shí)的數(shù)據(jù)處理非常高效,今天介紹一個(gè)很好用的計(jì)數(shù)函數(shù)——Counter。

Counter函數(shù)的功能主要是計(jì)數(shù)器,特別是在對源數(shù)據(jù)是字典類型的數(shù)據(jù)進(jìn)行計(jì)數(shù)時(shí),如果不想寫冗長繁瑣的for循環(huán),那么使用Counter函數(shù)將是一個(gè)不錯(cuò)的選擇。

這里以一個(gè)簡單的計(jì)數(shù)場景來演示,假設(shè)我們有一組以顏色名稱和顏色數(shù)量為鍵值對的字典對象,我們需要對同一種顏色進(jìn)行累計(jì)計(jì)數(shù)(字典中可能有多組同一顏色的鍵值對),看起來似乎只能使用笨笨的循環(huán)來進(jìn)行操作了。

colors = [{'red':4},{'blue':5},{'red':8},{'green':7},{'blue':8},{'blue':10},{'green':12}]

方法一——使用比較傳統(tǒng)的循環(huán)方法:

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標(biāo)準(zhǔn)庫中的Counter函數(shù),則整個(gè)過程會(huì)無比簡單:

方法二——Counter函數(shù):

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容器實(shí)現(xiàn)了一個(gè)自動(dòng)化的計(jì)數(shù)器,當(dāng)Counter中不存在某個(gè)鍵時(shí),賦值操作會(huì)自動(dòng)創(chuàng)建一個(gè)新的鍵,而不是像方法一中那樣需要手動(dòng)去判斷某個(gè)鍵是否已經(jīng)存在在字典里面。

除此之外,Counter神奇的地方在于它有很多可以簡單調(diào)用的統(tǒng)計(jì)方法,比如我們想要獲取結(jié)果中正序/倒序的TOPN記錄,則可以直接這樣寫:

c.most_common(2)[('blue', 23), ('green', 19)]

當(dāng)對數(shù)量巨大、且重復(fù)記錄多的字典對象進(jìn)行匯總計(jì)數(shù)操作時(shí),Counter函數(shù)能夠非常方便、高效的勝任此項(xiàng)工作。

總結(jié)

以上是生活随笔為你收集整理的python counter函数_Python中的魔法函数——Counter的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。