五月综合激情婷婷六月,日韩欧美国产一区不卡,他扒开我内裤强吻我下面视频 ,无套内射无矿码免费看黄,天天躁,日日躁,狠狠躁

新聞動(dòng)態(tài)

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

發(fā)布日期:2022-07-22 14:24 | 文章來(lái)源:gibhub

一、初始化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)行之后,效果如下:

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

通過(guò)上面初始化以及更新,我們Counter容器中存在了很多的值。因?yàn)檩敵龅氖亲值涞男问剑晕覀兛梢灾苯油ㄟ^(guò)字典的方式進(jìn)行訪問(wè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)我們沒(méi)有找到某個(gè)值時(shí),其默認(rèn)計(jì)數(shù)為0。

三、elements()

當(dāng)然,如果你想實(shí)現(xiàn)那種輸出沒(méi)有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ù)。這里,我們來(lái)實(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ù)。這樣我們可以通過(guò)Counter生成一個(gè)英文文檔中字母的頻度分布,在自然語(yǔ)言的處理當(dāng)中。就可以完美的結(jié)合起來(lái)進(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)文章希望大家以后多多支持本站!

美國(guó)穩(wěn)定服務(wù)器

版權(quán)聲明:本站文章來(lái)源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請(qǐng)保持原文完整并注明來(lái)源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非maisonbaluchon.cn所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來(lái)源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來(lái),僅供學(xué)習(xí)參考,不代表本站立場(chǎng),如有內(nèi)容涉嫌侵權(quán),請(qǐng)聯(lián)系alex-e#qq.com處理。

相關(guān)文章

實(shí)時(shí)開(kāi)通

自選配置、實(shí)時(shí)開(kāi)通

免備案

全球線路精選!

全天候客戶服務(wù)

7x24全年不間斷在線

專屬顧問(wèn)服務(wù)

1對(duì)1客戶咨詢顧問(wèn)

在線
客服

在線客服:7*24小時(shí)在線

客服
熱線

400-630-3752
7*24小時(shí)客服服務(wù)熱線

關(guān)注
微信

關(guān)注官方微信
頂部