分類

展開全部 | 收合全部

分類

展開全部 | 收合全部

【Python 進階語法 #5】python counter() 用法整理 – 快速計算資料內容的數量 (last updated: 2023/4/18)

前言

這篇我們要來研究 python counter 使用方法,
在解 leetcode 相關的題目的時候,
很常會有需要「計算數量」的時候,這時 counter() 就能發揮很大的功能。

說明

counter 屬於 dict 的子資料型態,是專門設計用來計數的,
我們將一個內容丟入 counter 中,
會回傳一個相當於 dict 的資料型態,
其中 key 代表的是「對應的元素」,而 value 代表的是「對應的數量」,
我們可以直接把內容丟入 counter,並得到結果。

注意

這邊要另外注意,因為這不算會預載入的 package,
我們使用上需要另外從 collections import Counter,

範例如下:

from collections import Counter 

完整內容可參考官方文件:

新增項目 (counter add)

既然都宣告了一個 counter, 我們當然會想要新增物件, 並累積數量。
這時我們可以使用

my_counter = Counter()
my_counter[key] += 1

就是上面這樣使用的方式,
原來我們 dict 的用法就是結合 key, value

而 value 被換成計數器,現在我們只需要宣告 Counter 後,
在指定對應的 key (不需要特別初始化 key 為 0),直接 += 1 即可,就會是從 1 開始了!

應用

這邊先直接講我在 leetcode 的應用,
如果我們將題目的 list 丟入 counter()、counter 會快速幫我們完成統計的動作,
我們可以再根據回傳的 counter (相當於 dict 的資料型態),
進行後續的動作。

我自己應用的經驗 – 1

from collections import Counter 
s = "leetcode"
print(Counter(s))
print(type(Counter(s)))
print(set(Counter(s)))

這邊的應用是,我想統計 “leetcode” 這個 string 裡面,
每個英文單字各有幾個,
我們可以看到丟入 Counter 後,我們快速的直接得到答案了!

而下方的取 set 是另外一種應用,我們可以快速知道「不重複的字母」有哪些。

不過這裡取 set 的這個用法只是因為我自己解題的過程剛好使用,
如果通常要用我們會直接取 set()
範例:

結果

我的關鍵字

  • counter add

Reference

更完整的 set 整理推薦以下連結,我這邊目前只寫到我自己需要用的部分XD:

Howard Weng
Howard Weng

我是 Howard Weng,很多人叫我嗡嗡。這個網站放了我的各種筆記。希望這些筆記也能順便幫助到有需要的人們!如果文章有幫助到你的話,歡迎幫我點讚哦!
另外,因為定位是「個人的隨手筆記」,有些文章內容「⚠️可能我理解有誤⚠️」或「?只寫到一半?」,如果有發現這樣的情況,歡迎在該文章的最下面留言提醒我!我會儘快修正或補上!感謝大家的建議與幫忙,讓網站能變得更好?

文章: 889

6 則留言

★留個言吧!內容有誤或想要補充也歡迎與我討論!