閱讀次數:次 # Counter 計數器 前言:在演算法中我們有時候會需要計算可迭代物件中的個別元素數量,Python 內建的 Counter 可以幫我們在實現這個功能之外,效能優化也是挺不錯的。 # 建立 Counter 123456import collections.Counterc = Counter() # a new, empty counterc = Counter('gallahad') # a new counter from an iterablec = Counter({'red': 4, 'blue': 2}) # a new counter from a mappingc = Counter(cats=4, dogs=8) # a new counter from keyword args # 查看 Counter 物件中該元素個數 12345import collections.Counterc = Counter(['eggs', 'ham'])c['bacon'] # 0c['eggs'] # 1 # 刪除 Counter 物件中的元素記數 12c['sausage'] = 0 # counter entry with a zero countdel c['sausage'] # del actually removes the entry # 列出 Counter 中的所有元素 12c = Counter(a=4, b=2, c=0, d=-2)sorted(c.elements()) #['a', 'a', 'a', 'a', 'b', 'b'] # Counter 物件中重複最多次的元素 most_common (n) 可以給 n 來回傳前 n 個重複最多次的元素 12Counter('abracadabra').most_common(3)[('a', 5), ('b', 2), ('r', 2)] # Counter 物件記數相減 1234c = Counter(a=4, b=2, c=0, d=-2)d = Counter(a=1, b=2, c=3, d=4)c.subtract(d)print(c) # Counter({'a': 3, 'b': 0, 'c': -3, 'd': -6}) Python Data-structure Algorithm