濮阳杆衣贸易有限公司

主頁 > 知識(shí)庫 > Python統(tǒng)計(jì)可散列的對(duì)象之容器Counter詳解

Python統(tǒng)計(jì)可散列的對(duì)象之容器Counter詳解

熱門標(biāo)簽:武漢外呼系統(tǒng)平臺(tái) 如何申請(qǐng)400電話費(fèi)用 沈陽人工外呼系統(tǒng)價(jià)格 江西省地圖標(biāo)注 沈陽外呼系統(tǒng)呼叫系統(tǒng) 池州外呼調(diào)研線路 富錦商家地圖標(biāo)注 沈陽防封電銷卡品牌 外呼系統(tǒng)哪些好辦

一、初始化Counter

Counter支持3種形式的初始化,比如提供一個(gè)數(shù)組,一個(gè)字典,或單獨(dú)鍵值對(duì)“=”式賦值。具體初始化的代碼如下所示:

import collections

a = collections.Counter(['a', 'a', 'b', 'b', 'b', 'c'])
b = collections.Counter({"a": 2, "b": 3, "c": 1})
c = collections.Counter(a=2, b=3, c=1)
print(a)
print(b)
print(c)

運(yùn)行之后,效果如下:

這種是直接通過構(gòu)造函數(shù)進(jìn)行填充。當(dāng)然,我們還可以直接構(gòu)造一個(gè)空Counter,然后通過update()函數(shù)進(jìn)行填充。

import collections

a = collections.Counter()
a.update(['a', 'a', 'b', 'b', 'b', 'c'])
print(a)

運(yùn)行效果和上面的a一樣,這里就不上圖了,感興趣的讀者自己測(cè)試運(yùn)行。

二、遍歷Counter

通過上面初始化以及更新,我們Counter容器中存在了很多的值。因?yàn)檩敵龅氖亲值涞男问?,所以我們可以直接通過字典的方式進(jìn)行訪問。

import collections

a = collections.Counter()
a.update(['a', 'a', 'b', 'b', 'b', 'c'])

for key in 'abcde':
    print(key, "=", a[key])

運(yùn)行之后,效果如下:

可以看到容器Counter,可以輸出空值不報(bào)錯(cuò)。因?yàn)楫?dāng)我們沒有找到某個(gè)值時(shí),其默認(rèn)計(jì)數(shù)為0。

三、elements()

當(dāng)然,如果你想實(shí)現(xiàn)那種輸出沒有0值的遍歷??梢允褂胑lements()迭代器。具體代碼如下:

import collections

a = collections.Counter()
a.update('caabbbc')
print(list(a.elements()))

運(yùn)行之后,效果如下:

需要注意的是,elements()雖然去除了0值,但并不能保證遍歷順序。

四、most_common

most_common()函數(shù)可以生成一個(gè)序列,統(tǒng)計(jì)包含n個(gè)最長(zhǎng)遇到的輸入值以及相應(yīng)的計(jì)數(shù)。這里,我們來實(shí)現(xiàn)統(tǒng)計(jì)一個(gè)文檔中,字母出現(xiàn)的個(gè)數(shù)。具體代碼如下:

import collections

c = collections.Counter()
with open('英文文檔.txt', 'rt') as f:
    for line in f:
        c.update(line.rstrip().lower())
for letter, count in c.most_common(5):
    print("{}:{}".format(letter, count))

運(yùn)行之后,效果如下:

這里統(tǒng)計(jì)的英文文檔中,空格最多,達(dá)到了658個(gè)。其他的一次都是前幾最多的個(gè)數(shù)。這樣我們可以通過Counter生成一個(gè)英文文檔中字母的頻度分布,在自然語言的處理當(dāng)中。就可以完美的結(jié)合起來進(jìn)行統(tǒng)計(jì)使用。

五、算數(shù)操作

Counter容器不僅可以統(tǒng)計(jì)頻度的分布。還可以進(jìn)行一些算數(shù)運(yùn)算。比如將兩個(gè)Counter容器進(jìn)行相加進(jìn)行統(tǒng)計(jì),亦或者相減也行。具體操作如下:

import collections

c1 = collections.Counter('abcbcabds')
c2 = collections.Counter('abcbcabds')
print("原始值:")
print(c1)
print(c2)
print("算數(shù)運(yùn)算后:")
print(c1 + c2)
print(c1 - c2)
print(c1  c2)
print(c1 | c2)

運(yùn)行之后,效果如下:

到此這篇關(guān)于Python統(tǒng)計(jì)可散列的對(duì)象之容器Counter詳解的文章就介紹到這了,更多相關(guān)Python容器Counter內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • Docker容器化部署Python應(yīng)用過程解析
  • Python容器類型公共方法總結(jié)
  • python 容器總結(jié)整理
  • python腳本監(jiān)控docker容器
  • 詳細(xì)探究Python中的字典容器
  • Python基礎(chǔ)語法之容器詳解

標(biāo)簽:銅川 常德 通遼 黑龍江 呂梁 株洲 潛江 阿里

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Python統(tǒng)計(jì)可散列的對(duì)象之容器Counter詳解》,本文關(guān)鍵詞  Python,統(tǒng)計(jì),可散列,的,對(duì),;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Python統(tǒng)計(jì)可散列的對(duì)象之容器Counter詳解》相關(guān)的同類信息!
  • 本頁收集關(guān)于Python統(tǒng)計(jì)可散列的對(duì)象之容器Counter詳解的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    阳山县| 奉化市| 周口市| 玉溪市| 阜新| 涪陵区| 额济纳旗| 常熟市| 遵化市| 阿图什市| 修文县| 营口市| 桐梓县| 上饶市| 丘北县| 齐齐哈尔市| 丁青县| 石楼县| 隆回县| 弥渡县| 蓬溪县| 新丰县| 常山县| 衡南县| 文登市| 丹江口市| 大英县| 紫阳县| 罗江县| 德州市| 忻州市| 共和县| 常德市| 遂宁市| 贵港市| 电白县| 加查县| 甘孜| 湘潭县| 沂源县| 新密市|