xxxxxxxxxx
def pop_counted(a):
pop_counted.counter += 1
return a.pop()
pop_counted.counter = 0
xxxxxxxxxx
import collections
arr = ['a', 'a', 'b', 'b', 'b', 'c']
# set the elements frequencies using Counter class
elements_count = collections.Counter(arr)
# printing the element and the frequency
for key, value in elements_count.items():
print(f"{key}: {value}")
# output
# a: 2
# b: 3
# c: 1
data = 'hello world'
# set the elements frequencies using Counter class
elements_count = collections.Counter(data)
# printing the element and the frequency
print(elements_count)
xxxxxxxxxx
>>> from collections import Counter
>>> colors = ['blue', 'blue', 'blue', 'red', 'red']
>>> counter = Counter(colors)
>>> counter['yellow'] += 1
Counter({'blue': 3, 'red': 2, 'yellow': 1})
>>> counter.most_common()[0]
('blue', 3)
xxxxxxxxxx
>>> # Tally occurrences of words in a list
>>> cnt = Counter()
>>> for word in ['red', 'blue', 'red', 'green', 'blue', 'blue']:
cnt[word] += 1
>>> cnt
Counter({'blue': 3, 'red': 2, 'green': 1})
>>> # Find the ten most common words in Hamlet
>>> import re
>>> words = re.findall(r'\w+', open('hamlet.txt').read().lower())
>>> Counter(words).most_common(10)
[('the', 1143), ('and', 966), ('to', 762), ('of', 669), ('i', 631),
('you', 554), ('a', 546), ('my', 514), ('hamlet', 471), ('in', 451)]
xxxxxxxxxx
>>> Counter('abracadabra').most_common(3)
[('a', 5), ('r', 2), ('b', 2)]
xxxxxxxxxx
sum(c.values()) # total of all counts
c.clear() # reset all counts
list(c) # list unique elements
set(c) # convert to a set
dict(c) # convert to a regular dictionary
c.items() # convert to a list of (elem, cnt) pairs
Counter(dict(list_of_pairs)) # convert from a list of (elem, cnt) pairs
c.most_common()[:-n-1:-1] # n least common elements
c += Counter() # remove zero and negative counts
xxxxxxxxxx
>>> from collections import Counter
>>> # Use a string as an argument
>>> Counter("mississippi")
Counter({'i': 4, 's': 4, 'p': 2, 'm': 1})
>>> # Use a list as an argument
>>> Counter(list("mississippi"))
Counter({'i': 4, 's': 4, 'p': 2, 'm': 1})
>>> # Use a dictionary or set as an argument
>>> Counter(i=4, s=4, p=2, m=1)
Counter({'i': 4, 's': 4, 'p': 2, 'm': 1})
>>> Counter(set("mississippi"))
Counter({'p': 1, 's': 1, 'm': 1, 'i': 1})
>>> # Use .update() to update object counts, use with both iterables and mappings
>>> letters = Counter({"i": 4, "s": 4, "p": 2, "m": 1})
>>> letters.update("missouri")
>>> letters
Counter({'i': 6, 's': 6, 'p': 2, 'm': 2, 'o': 1, 'u': 1, 'r': 1})
>>> # Accessing the counter's content
>>> letters = Counter("mississippi")
>>> letters["p"]
2
>>> for letter in letters:
print(letter, letters[letter])
m 1
i 4
s 4
p 2
>>> for letter in letters.keys():
print(letter, letters[letter])
m 1
i 4
s 4
p 2
>>> for count in letters.values():
print(count)
1
4
4
2
>>> for letter, count in letters.items():
print(letter, count)
m 1
i 4
s 4
p 2
>>> # Finding the most common objects
>>> sales = Counter(banana=15, tomato=4, apple=39, orange=30)
>>> # The most common object
>>> sales.most_common(1)
[('apple', 39)]
>>> # The two most common objects
>>> sales.most_common(2)
[('apple', 39), ('orange', 30)]
>>> # All objects sorted by count
>>> sales.most_common()
[('apple', 39), ('orange', 30), ('banana', 15), ('tomato', 4)]
>>> sales.most_common(None)
[('apple', 39), ('orange', 30), ('banana', 15), ('tomato', 4)]
xxxxxxxxxx
import time
from time import sleep, time
can_run = True
the_number = 0
end_number = 11 #you can change the number to be last counted
while can_run:
print(the_number)
sleep(1)
the_number = the_number + 1
if the_number == end_number:
can_run = False
xxxxxxxxxx
>>> c = Counter(a=4, b=2, c=0, d=-2)
>>> d = Counter(a=1, b=2, c=3, d=4)
>>> c.subtract(d)
>>> c
Counter({'a': 3, 'b': 0, 'c': -3, 'd': -6})