DEV Community

Preethii V
Preethii V

Posted on

🏏 The 18-Day DSA Cover Drive | Day 2: Meet Python's Counter

🏏 The 18-Day DSA Cover Drive | Day 2 — Meet Counter


Learn DSA one Python trick at a time.

What's up, DEV community! 👋

Welcome back to Day 2 of The 18-Day DSA Cover Drive.


🏆 Kohli Corner

Fastest to 8,000 ODI Runs

Virat Kohli didn't score 8,000 ODI runs in a single innings.

He reached the milestone by scoring one run at a time, trusting the process, and showing up consistently.

Just like great innings are built one run at a time, great code is built one improvement at a time.


📊 Day 2 — Meet Counter

🎯 Today's Python Power-Up

Yesterday, we learned how to build a Frequency Map manually.

freq = {}

for item in arr:
    freq[item] = freq.get(item, 0) + 1
Enter fullscreen mode Exit fullscreen mode

It works.

It's clean.

But Python says...

"Why write four lines when one line is enough?" 😄

Meet Counter.


✨ The Magic Line

from collections import Counter

arr = [1, 2, 1, 3, 2, 1]

freq = Counter(arr)

print(freq)
Enter fullscreen mode Exit fullscreen mode

Output

Counter({1: 3, 2: 2, 3: 1})
Enter fullscreen mode Exit fullscreen mode

That's it!

No loop.

No .get().

No if-else.

Just one line.


🤔 Imagine This...

Your teacher asks,

"How many students are wearing blue?"

❌ Yesterday's Way

You walk around the classroom and count everyone manually.

Again.

Again.

Again.


✅ Today's Way

The teacher presses a button on a smart attendance machine.

Blue  → 8
Black → 12
White → 6
Enter fullscreen mode Exit fullscreen mode

Instant result.

That's exactly what Counter does.


❌ Before

freq = {}

for item in arr:
    freq[item] = freq.get(item, 0) + 1
Enter fullscreen mode Exit fullscreen mode

✅ After

from collections import Counter

freq = Counter(arr)
Enter fullscreen mode Exit fullscreen mode

✅ Cleaner

✅ Smaller

✅ More Pythonic


🚀 Bonus Powers of Counter

Count a specific element

print(freq[1])
Enter fullscreen mode Exit fullscreen mode

Output

3
Enter fullscreen mode Exit fullscreen mode

Find the most frequent element

print(freq.most_common(1))
Enter fullscreen mode Exit fullscreen mode

Output

[(1, 3)]
Enter fullscreen mode Exit fullscreen mode

Pretty cool, right? 😄


💡 Where is Counter useful?

You'll commonly use it in problems like:

  • Finding duplicate elements
  • Counting character frequencies
  • Valid Anagram
  • Majority Element
  • Top K Frequent Elements
  • Frequency-based array problems

⚡ Interview Insight

Should you always use Counter?

Use Counter when the problem is mainly about counting frequencies.

Don't immediately use Counter if an interviewer specifically asks you to implement the frequency map yourself.

Understanding how Counter works internally (which we learned on Day 1 using dict.get()) is just as important as knowing the shortcut.

First learn the logic. Then learn the shortcut.


🧠 Quick Challenge

Without running the code...

Can you guess the output?

from collections import Counter

word = "mississippi"

freq = Counter(word)

print(freq["s"])
print(freq.most_common(1))
Enter fullscreen mode Exit fullscreen mode

👇 Drop your answer in the comments before checking!

🎯 Bonus Question

Can you think of another DSA problem where Counter can replace an entire counting loop?

I'd love to hear your answers!


🏏 Cover Drive of the Day

🏏 Concept: Counter

Python Gem: collections.Counter

💼 Interview Insight: Learn the logic first, then use the shortcut.

⏭️ Next Innings: defaultdict — A dictionary that creates missing keys automatically.


💬 Let's Discuss

Have you used Counter before?

Or did you learn something new today?

If you know another hidden Python gem that makes DSA easier, drop it in the comments! 👇


18DayDSACoverDrive | Python | DSA | Beginners | Learning

Top comments (0)