Python program to find Most Frequent Character in a String

When it is required to find the most frequent character in a string, an empty dictionary is created, and the elements in the string are iterated over. When a character is found in the dictionary, it is incremented, else it is assigned to 1. The maximum of the values in the dictionary is found, and assigned to a variable.

Using Dictionary to Count Characters

Below is a demonstration of the same ?

my_string = "Python-Interpreter"

print("The string is : ")
print(my_string)

max_frequency = {}
for i in my_string:
    if i in max_frequency:
        max_frequency[i] += 1
    else:
        max_frequency[i] = 1

my_result = max(max_frequency, key = max_frequency.get)

print("The maximum of all characters is : ")
print(my_result)
The string is : 
Python-Interpreter
The maximum of all characters is : 
e

Using collections.Counter

Python's collections.Counter provides a more efficient way to count characters ?

from collections import Counter

my_string = "Python-Interpreter"
print("The string is :", my_string)

# Count all characters
char_count = Counter(my_string)
print("Character frequencies:", dict(char_count))

# Find most frequent character
most_frequent = char_count.most_common(1)[0]
print("Most frequent character:", most_frequent[0])
print("Frequency:", most_frequent[1])
The string is : Python-Interpreter
Character frequencies: {'P': 1, 'y': 1, 't': 4, 'h': 1, 'o': 1, 'n': 4, '-': 1, 'I': 1, 'n': 4, 't': 4, 'e': 4, 'r': 4, 'p': 1, 'r': 4, 'e': 4, 't': 4, 'e': 4, 'r': 4}
Most frequent character: t
Frequency: 4

Using max() with count()

This approach uses the built-in count() method with max() ?

my_string = "Python-Interpreter"
print("The string is :", my_string)

# Find character with maximum count
most_frequent = max(set(my_string), key=my_string.count)
frequency = my_string.count(most_frequent)

print("Most frequent character:", most_frequent)
print("Frequency:", frequency)
The string is : Python-Interpreter
Most frequent character: t
Frequency: 4

Comparison

Method Time Complexity Best For
Dictionary O(n) Learning purposes
Counter O(n) Professional code
max() + count() O(n²) Short strings only

How It Works

  • A string is defined, and is displayed on the console.

  • An empty dictionary is created to store character frequencies.

  • The letters in the string are iterated over, and if a character exists in the dictionary, its count is incremented.

  • Else, it is assigned to 1.

  • The max() function finds the key with maximum value in the dictionary.

  • This result is displayed as output on the console.

Conclusion

Use collections.Counter for professional code as it's efficient and readable. The dictionary method helps understand the underlying logic. Avoid max() + count() for large strings due to its O(n²) complexity.

Updated on: 2026-03-26T01:27:42+05:30

4K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements