Python Program to Find Frequency of Characters in a String

Finding the frequency of characters in a string is an important problem in Python. It helps in understanding dictionaries, loops, and data counting techniques.

In this tutorial, we will explore multiple methods to count how many times each character appears.

1. Understanding the Problem

Given a string, count the frequency of each character.

Input: hello
Output: {'h':1, 'e':1, 'l':2, 'o':1}

2. Method 1: Using Dictionary

Python
Using dictionary
string = input("Enter a string: ")
freq = {}

for char in string:
    freq[char] = freq.get(char, 0) + 1

print(freq)

This method uses a dictionary to store character counts.

3. Method 2: Using collections.Counter

Python
Using Counter
from collections import Counter

string = input()
freq = Counter(string)

print(freq)

Counter is a built-in class that simplifies counting.

4. Method 3: Using Nested Loop

Python
Manual counting
string = input()

for char in set(string):
    count = 0
    for c in string:
        if c == char:
            count += 1
    print(char, count)

This method manually counts occurrences for each character.

5. Method 4: Using Function

Python
Reusable function
def char_frequency(s):
    freq = {}
    for char in s:
        freq[char] = freq.get(char, 0) + 1
    return freq

print(char_frequency("Python"))

Encapsulating logic inside a function improves reusability.

6. Method 5: Ignoring Spaces

Python
Exclude spaces
string = input().replace(" ", "")
freq = {}

for char in string:
    freq[char] = freq.get(char, 0) + 1

print(freq)

This method removes spaces before counting characters.

7. Algorithm

1. Take input string.

2. Initialize empty dictionary.

3. Loop through each character.

4. Update count in dictionary.

5. Print frequency.

8. Common Mistakes

1. Not initializing dictionary properly.

2. Overwriting values instead of incrementing.

3. Ignoring case sensitivity.

4. Counting spaces unintentionally.

9. Applications

1. Text analysis.

2. Data compression algorithms.

3. Frequency-based sorting.

4. Cryptography basics.

Conclusion

Finding character frequency is a key concept in Python programming and data processing.

Using collections.Counter is the most efficient method, while dictionary methods help in understanding core logic.