from collections import Counter c = Counter('Apple') print(sorted(c.items())) # [('A', 1), ('e', 1), ('l', 1), ('p', 2)] c['A'] += 1 print(sorted(c.items())) # [('A', 2), ('e', 1), ('l', 1), ('p', 2)] c['A'] = -5 # 可以使用負數 print(sorted(c.items())) # [('A', -5), ('e', 1), ('l', 1), ('p', 2)] print(c['X']) # 0,遇到不存在的 key 回傳 0
建立 Counter
有許多方式可以建立 Counter。用 value 為 int 的 dict。
from collections import Counter c = Counter({ 'apple': 3, 'banana': 5}) print(sorted(c.items())) # [('apple', 3), ('banana', 5)]用 Keyword argument 建立 Counter。
from collections import Counter c = Counter(apple=3, banana=5) print(sorted(c.items())) # [('apple', 3), ('banana', 5)]用 list 建立 Counter,加總重複的 item。
from collections import Counter c = Counter(['apple', 'banana', 'apple']) print(sorted(c.items())) # [('apple', 2), ('banana', 1)]用 set 建立 Counter。
from collections import Counter c = Counter({'apple', 'banana', 'apple'}) print(sorted(c.items())) # [('apple', 1), ('banana', 1)]
將 Counter 變成 Bag
利用 Counter.elements() 可以得到一袋的 item。from collections import Counter c = Counter({ 'apple': 2, 'banana': 3}) print(sorted(c.items())) # [('apple', 2), ('banana', 3)] print(sorted(c.elements())) # ['apple', 'apple', 'banana', 'banana', 'banana']
取得出現頻率最高的 item
利用 Counter.most_common(N) 可以得到出現頻率前 N 大的 item。from collections import Counter c = Counter('azsxszaaxsaszasa') print(sorted(c.items())) # [('a', 6), ('s', 5), ('x', 2), ('z', 3)] print(c.most_common(2)) # [('a', 6), ('s', 5)]
Counter 減去 Counter
有兩個方式可以執行 Counter 減 Counter,使用運算子 - 與 Counter.subtract(),但要小心運算子 - 是回傳新的 Counter,而 Counter.subtract() 是修改原 Counter 物件,並回傳 None。from collections import Counter c1 = Counter('azsxszaaxsaszasa') c2 = Counter('sxszaxsa') print(sorted(c1.items())) # [('a', 6), ('s', 5), ('x', 2), ('z', 3)] print(sorted(c2.items())) # [('a', 2), ('s', 3), ('x', 2), ('z', 1)] c3 = c1 - c2; print(sorted(c3.items())) # [('a', 4), ('s', 2), ('z', 2)] c2.subtract(c1); print(sorted(c2.items())) # [('a', -4), ('s', -2), ('x', 0), ('z', -2)]
官方文件
---
---
---
there are many product development company but only few are good and this blog need to be on application.
回覆刪除hawkscode india is a IT service provider.
回覆刪除