Problem Formulation and Solution Overview
To make it more interesting, we have the following running scenario:
Method 1: Use Collections.Counter
This example uses the collections
library that provides container types allowing the coder to easily store and access data values. The Counter()
function keeps a running tally of each element’s count.
import collections slogan = 'It is not a bug it is an undocumented feature.' print(collections.Counter(slogan).most_common(1))
The above code imports Python’s built-in collections
library and saves a string to the variable slogan
.
Then, the collections.Counter()
is called and passed the variable slogan
as an argument.
Next, most_common
(a counter tool for quick tallies) is appended to
and is passed an argument of 1. This indicates to return the highest value.slogan
A List of Tuples containing the character with the highest tally and the associated number returns and is output to the terminal.
In this case, the space character was the highest, with 9 occurrences.
[(' ', 9)] |
To break the Tuple out of the List, append [0]
to the end.
print(collections.Counter(slogan).most_common(1)[0])
This will result in the following output.
(' ', 9) |
Method 2: Use For loop and max()
This example uses a for
loop and calls the
function to determine which character occurs most often in a string.max()
slogan = 'We Debug Every Software Bug' common = {} for i in slogan.lower(): if i in common: common[i] += 1 else: common[i] = 1 most_common = max(common, key=common.get) print (f'The maximum character is: {most_common}')
The above code creates a string and saves it to the variable slogan
. Then, an empty Dictionary is created and saved to the variable common
.
Next, a for
loop is instantiated to iterate through each element (character) in slogan
in lowercase (using lower()
).
If the element (character) was previously found, the count increases by 1. If this is the first time the element (character) is found, the initial value is set to 1.
Then, the max()
function is called and passed common
, retrieving the key with the highest tally. The results save to most_common
.
If common
was output to the terminal, the following Dictionary
would display.
{'w': 2, 'e': 5, ' ': 4, 'd': 1, 'b': 2, 'u': 2, 'g': 2, 'v': 1, 'r': 2, 'y': 1, 's': 1, 'o': 1, 'f': 1, 't': 1, 'a': 1} |
If most_common
was output to the terminal, the following character would display.
The maximum character is: e |
This is correct! The character e
can be found 5
times in the string slogan.
π‘Note: If we did not convert slogan
to lowercase before running this code, the result would be different as E and e do not equate to the same value.
Method 3: Use For loop and count()
This example uses a for
loop and calls the count()
function to determine which character occurs most often in a string.
slogan = 'Every bug needs help.'.lower() rcount = 1 for c in slogan: char_count = slogan.count(c) if char_count > rcount: rcount = char_count most_common = c print(most_common, rcount)
The above code creates a string, converts it to lowercase using lower()
and saves it to the variable slogan
. Then, a counter variable is created, rcount
and assigned a value of 1.
Next, a for
loop is instantiated to iterate through each element (character) in slogan
checking the current element (character) to see how many times it has occurred thus far in the iteration. The associated variables are updated accordingly.
Upon completion of the iteration, the most_common
character and its associated count are output to the terminal.
e 5 |
Method 4: Use max() and a lambda
This example uses max()
and a lambda
to determine which character occurs most often in a string.
def most_common(text): common = [(c, text.count(c)) for c in set(text)] return max(common, key=lambda x: x[1])[0] slogan = 'Software Mechanics' print(most_common(slogan))
The above code defines a function most_common
. This function accepts 1 argument, a string (text
).
Let’s start at the bottom where a string is declared and saved to slogan
. Then, the above function is called and passed this string (most_common(slogan)
).
Inside the function at the top, List Comprehension
is used to iterate through each element (character) of the passed string using the set()
method. The results save to common
.
If common
was output to the terminal, the following would display.
[('c', 2), ('w', 1), (' ', 1), ('n', 1), ('s', 2), ('a', 2), ('m', 1), ('r', 1), ('h', 1), ('e', 2), ('i', 1), ('t', 1), ('f', 1), ('o', 1)] |
The following outputs the contents of most_common
to the terminal.
c |
Bonus: Determine Most Common Element ignoring Spaces
All the above examples show you various ways to determine the most common element in a string. However, what if you don’t want to count the number of times a space character appears?
slogan = 'Amazing Software Mechanics Always Fixing Bugs'.lower() common = {} for c in slogan: if c == ' ': continue elif c in common: common[c] += 1 else: common[c] = 1 most_common = sorted(common.items(), key=lambda k: k[1], reverse=True) print(most_common[0])!
πFinxter Challenge
Modify the code to ignore other characters!
Summary
This article showed you five (5) ways to find the most common element of a string. These examples should provide you with enough information to select the one that best meets your coding requirements.
Good Luck & Happy Coding!
Programming Humor


At university, I found my love of writing and coding. Both of which I was able to use in my career.
During the past 15 years, I have held a number of positions such as:
In-house Corporate Technical Writer for various software programs such as Navision and Microsoft CRM
Corporate Trainer (staff of 30+)
Programming Instructor
Implementation Specialist for Navision and Microsoft CRM
Senior PHP Coder