PYTHON
Count Hashable Objects with `collections.Counter`
Master `collections.Counter` for quickly counting occurrences of items in a collection, ideal for frequency analysis, finding the most common elements, or summarizing data in web development.
from collections import Counter
# Counting elements in a list
fruits = ["apple", "banana", "apple", "orange", "banana", "apple", "grape"]
fruit_counts = Counter(fruits)
print(f"Fruit counts: {fruit_counts}")
# Counting characters in a string
text = "hello world"
char_counts = Counter(text)
print(f"Character counts: {char_counts}")
# Accessing counts
print(f"Count of 'apple': {fruit_counts['apple']}")
print(f"Count of 'kiwi' (not present): {fruit_counts['kiwi']}") # Returns 0 for missing items
# Finding the most common elements
most_common_3_fruits = fruit_counts.most_common(3)
print(f"3 most common fruits: {most_common_3_fruits}")
# Arithmetic operations on Counters (addition, subtraction)
more_fruits = Counter(["apple", "cherry", "banana"])
total_fruits = fruit_counts + more_fruits
print(f"Total fruits after addition: {total_fruits}")
less_fruits = Counter(["apple", "banana"])
remaining_fruits = fruit_counts - less_fruits
print(f"Remaining fruits after subtraction: {remaining_fruits}") # Counts <= 0 are removed
How it works: `collections.Counter` is a `dict` subclass for counting hashable objects. It's a powerful tool for frequency analysis, quickly turning an iterable into a mapping of elements to their counts. It provides convenient methods like `most_common(n)` to retrieve the N most frequent items and supports arithmetic operations (addition, subtraction) for combining or comparing counts from different collections, making it highly versatile for data analysis tasks.