欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時間:2021年05月18日 10:31:49   作者:李元靜  
Counter是一個容器,可以跟蹤等效值增加的次數(shù).這個類可以用來實現(xiàn)其他語言中常用包或多集合數(shù)據(jù)結(jié)構(gòu)實現(xiàn)的算法.本篇文章非常詳細的介紹了容器Counter的使用方式,需要的朋友可以參考下

一、初始化Counter

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

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)

運行之后,效果如下:

初始化

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

import collections

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

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

二、遍歷Counter

通過上面初始化以及更新,我們Counter容器中存在了很多的值。因為輸出的是字典的形式,所以我們可以直接通過字典的方式進行訪問。

import collections

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

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

運行之后,效果如下:

效果

可以看到容器Counter,可以輸出空值不報錯。因為當我們沒有找到某個值時,其默認計數(shù)為0。

三、elements()

當然,如果你想實現(xiàn)那種輸出沒有0值的遍歷。可以使用elements()迭代器。具體代碼如下:

import collections

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

運行之后,效果如下:

elements

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

四、most_common

most_common()函數(shù)可以生成一個序列,統(tǒng)計包含n個最長遇到的輸入值以及相應的計數(shù)。這里,我們來實現(xiàn)統(tǒng)計一個文檔中,字母出現(xiàn)的個數(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))

運行之后,效果如下:

統(tǒng)計

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

五、算數(shù)操作

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

import collections

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

運行之后,效果如下:

算數(shù)運算

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

相關文章

  • python將一組數(shù)分成每3個一組的實例

    python將一組數(shù)分成每3個一組的實例

    今天小編就為大家分享一篇python將一組數(shù)分成每3個一組的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-11-11
  • Django利用LogEntry生成歷史操作實戰(zhàn)記錄

    Django利用LogEntry生成歷史操作實戰(zhàn)記錄

    LogEntry是在后臺開發(fā)中經(jīng)常用到的模塊,它在admin是默認開啟的。文中給大家介紹了在admin頁面上查看操作日志的方法及實戰(zhàn)代碼,感興趣的朋友跟隨小編一起看看吧
    2021-12-12
  • python基礎教程項目四之新聞聚合

    python基礎教程項目四之新聞聚合

    這篇文章主要為大家詳細介紹了python基礎教程項目四之新聞聚合,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-04-04
  • Python直接使用plot()函數(shù)畫圖的方法實例

    Python直接使用plot()函數(shù)畫圖的方法實例

    Python非常簡單而又非常強大,它的功能之一就是畫出漂亮的圖表,實現(xiàn)數(shù)據(jù)的可視化,下面這篇文章主要給大家介紹了關于Python直接使用plot()函數(shù)畫圖的相關資料,需要的朋友可以參考下
    2022-05-05
  • 利用Python實現(xiàn)批量下載上市公司財務報表

    利用Python實現(xiàn)批量下載上市公司財務報表

    這篇文章主要為大家介紹了如何利用Python做個小工具,可以批量把某網(wǎng)站上的上市公司的財報下下來。文中的示例代碼講解詳細,感興趣的可以動手試一試
    2022-03-03
  • 基于Flask實現(xiàn)文件上傳七牛云中并下載

    基于Flask實現(xiàn)文件上傳七牛云中并下載

    文件上傳是Web應用中常見的功能之一,而七牛云則提供了強大的云存儲服務,本文我們將學習如何在Flask應用中實現(xiàn)文件上傳,并將上傳的文件保存到七牛云,感興趣的可以學習一下
    2023-10-10
  • python實現(xiàn)機器人行走效果

    python實現(xiàn)機器人行走效果

    這篇文章主要為大家詳細介紹了python實現(xiàn)機器人行走效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • python放大圖片和畫方格實現(xiàn)算法

    python放大圖片和畫方格實現(xiàn)算法

    這篇文章主要為大家詳細介紹了python放大圖片和畫方格實現(xiàn)算法,實現(xiàn)圖片的放大縮小功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-03-03
  • python實現(xiàn)線性插值的示例

    python實現(xiàn)線性插值的示例

    線性插值是針對一維數(shù)據(jù)的插值方法,它根據(jù)一維數(shù)據(jù)序列中需要插值的點的左右臨近兩個數(shù)據(jù)來進行數(shù)值估計,這篇文章主要介紹了python實現(xiàn)線性插值,需要的朋友可以參考下
    2022-12-12
  • pytorch如何自定義數(shù)據(jù)集

    pytorch如何自定義數(shù)據(jù)集

    這篇文章主要介紹了pytorch自定義數(shù)據(jù)集,在識別手寫數(shù)字的例子中,數(shù)據(jù)集是直接下載的,但如果我們自己收集了一些數(shù)據(jù),存在電腦文件夾里,我們該如何把這些數(shù)據(jù)變?yōu)榭梢栽赑yTorch框架下進行神經(jīng)網(wǎng)絡訓練的數(shù)據(jù)集呢,即如何自定義數(shù)據(jù)集呢,需要的朋友可以參考下
    2024-01-01

最新評論