Count Number of Vowels using Sets in Given String - Python
Last Updated :
11 Dec, 2025
Given a string, the goal is to count how many vowels it contains. Vowels include a, e, i, o, u (both uppercase and lowercase). For example:
Input: "Beautiful Day"
Output: 6
Explanation: Input has 6 vowels (e, a, u, i, u, a).
Let's explore different methods to count number of vowels in a given string in Python.
Using sum()
This method checks each character against a vowel set during a single pass through the string.
Python
s = "Python is the best"
v = {'a','e','i','o','u','A','E','I','O','U'}
c = sum(1 for ch in s if ch in v)
print("Number of vowels:", c)
OutputNumber of vowels: 4
Explanation:
- v holds vowels for quick membership testing.
- The generator 1 for ch in s if ch in v contributes a count whenever a vowel appears.
- sum() aggregates the total without creating extra lists.
Using casefold()
This method converts the whole string to a single case to reduce the vowel set and simplify comparisons.
Python
s = "Python Programming"
v = {'a','e','i','o','u'}
s = s.casefold()
c = sum(1 for ch in s if ch in v)
print("Number of vowels:", c)
OutputNumber of vowels: 4
Explanation:
- s.casefold() normalizes all characters for a uniform comparison.
- Using only lowercase vowels makes the set smaller.
Using count()
This method finds which vowels appear in the string, then counts their occurrences.
Python
s = "Set operations in Python"
v = {'a','e','i','o','u','A','E','I','O','U'}
c = sum(s.count(ch) for ch in (set(s) & v))
print("Number of vowels:", c)
OutputNumber of vowels: 8
Explanation:
- set(s) & v extracts only the vowel characters present in the string.
- s.count(ch) gives the frequency of each vowel.
- sum() adds all frequencies to produce the final count.
Using for loop (brute force)
We can create a set of vowels and iterate over the string and if the current character is present in the dictionary then increment the count of vowels.
Python
vow = {'a','e','i','o','u','A','E','I','O','U'}
s = "This example uses brute force"
res = 0
for c in s:
if c in vow:
res+=1
print(res)
Explanation:
- A set vow stores all vowels (both lowercase and uppercase).
- The string 's' is scanned character by character.
- For each character, if it's in the vowel set, the counter "res" is increased by 1.
Count number of vowels using sets in given string
Explore
Python Fundamentals
Python Data Structures
Advanced Python
Data Science with Python
Web Development with Python
Python Practice