Create an account


Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
[Tut] How to Count Vowels in a String

#1
How to Count Vowels in a String

Rate this post

Problem Formulation and Solution Overview


In this article, you’ll learn how to count the number of vowels in a string.

To make it more fun, we have the following running scenario:

In Canada, we have a province called Saskatchewan. This province has a large amount of flat land. In this article, we reference their local saying.

? Question: How would we write Python code to count the vowels in a String?

We can accomplish this task by one of the following options:


Add the following code to the top of each code snippet. This snippet will allow the code in this article to run error-free.

import re
from collections import Counter

Method 1: Use Regex and Dictionary Comprehension


This example uses Regex and Dictionary Comprehension as a one-liner to tally the number of specified vowels in a string. The results return in a Dictionary format.

saying = 'Saskatchewan! Where you can watch your dog run away for 3 days.'
vcount = {x: len(re.findall(f"{x}", saying.lower())) for x in 'aeiou'}
print(vcount)

⭐A Finxter Favorite!

This code declares the string saying. Then, Dictionary Comprehension converts the string to lowercase and re.findall() searches for and tallies each specified vowel.

The results save to vcount and are output to the terminal.




Output


{'a': 8, 'e': 3, 'i': 0, 'o': 4, 'u': 3}


Method 2: Use List Comprehension and count()


This example uses List Comprehension to tally the number of specified vowels in a string. The results return in a List format.

saying = 'Saskatchewan! Where you can watch your dog run away for 3 days.'
vcount = [saying.lower().count(x) for x in 'aeiou']
print(vcount)

This code declares the string saying. Then, List Comprehension converts the string to lowercase and searches for and tallies each specified vowel.

The results save to variable vcount and are output to the terminal.




Output


[8, 3, 0, 4, 3]

?Note: This output displays the totals but not their associated vowel.


Method 3: Use Counter() and count.update()


This example calls the Collections library and uses Counter() to count the number of specified vowels in a string.

saying = 'Saskatchewan! Where you can watch your dog run away for 3 days.'
count = Counter() for i in saying: if i in 'aeiou': count.update(i.lower()) print(dict(count))

This code declares the string saying and initiates the Counter() object, count.

A for loop instantiates and traverses through each character converting to lowercase, searching for and tallies each specified vowel.

The results save to count and are output to the terminal.

If this code was output to the terminal using print(count), the output would be as follows:

Output using print(count)


Counter({'a': 8, 'o': 4, 'e': 3, 'u': 3})

Placing count inside dict() removes the word Counter and surrounding braces ().

Output using print(dict(count))


{'a': 8, 'e': 3, 'i': 0, 'o': 4, 'u': 3}

?Note: This method produces the same output as Method 1 but with four (4) additional lines of code.


Method 4: Use For and count()


This example uses a for loop and string.count() to tally the number of specified vowels in a string. The results return as a string.

saying = 'Saskatchewan! Where you can watch your dog run away for 3 days.'
tmp = ''
for i in 'aeiou': tmp += i + ':' + str(saying.count(i)) + ' '
print(tmp)

This code declares the string saying and initiates a variable tmp.

A for loop instantiates and traverses through each character, searching for and tallying each specified vowel. The results convert to a string, save to tmp, and are output to the terminal.

Output


a:8 e:3 i:0 o:4 u:3


Method 5: Use map() and count()


This example uses map() and count() to tally the number of specified vowels in a string.

saying = 'Saskatchewan! Where you can watch your dog run away for 3 days.'
print(*map(saying.lower().count, 'aeiou'))

This code declares the string, saying converts the string to lowercase, and tallies the specified vowel. The results are output to the terminal.




Output


8 3 0 4 3


Summary


In this case, lower() was not required as you could see no vowels were in uppercase. However, you may not always know what a string will contain. In this case, best to convert to either lowercase or uppercase.

These five (5) methods of counting vowels in a string should give you enough information to select the best one for your coding requirements.

Good Luck & Happy Coding!




https://www.sickgaming.net/blog/2022/05/...-a-string/
Reply



Possibly Related Threads…
Thread Author Replies Views Last Post
  [Tut] Collections.Counter: How to Count List Elements (Python) xSicKxBot 0 1,956 08-19-2023, 06:03 AM
Last Post: xSicKxBot
  [Tut] Python | Split String and Count Results xSicKxBot 0 1,161 11-26-2022, 06:39 AM
Last Post: xSicKxBot
  [Tut] How to Count the Number of Unique Values in a List in Python? xSicKxBot 0 1,351 10-19-2022, 03:08 AM
Last Post: xSicKxBot
  [Tut] How to Count the Occurrences of a List Element xSicKxBot 0 1,138 04-16-2022, 03:53 PM
Last Post: xSicKxBot
  [Tut] How to Get The Current Reference Count of an Object in Python? xSicKxBot 0 1,412 12-21-2020, 05:13 AM
Last Post: xSicKxBot
  [Tut] string.join(list) vs list.join(string) | Why Python’s Creators Chose The Former xSicKxBot 0 1,369 06-19-2020, 02:12 AM
Last Post: xSicKxBot
  [Tut] Python: How to Count Elements in a List Matching a Condition? xSicKxBot 0 1,774 03-30-2020, 08:23 PM
Last Post: xSicKxBot
  [Tut] Python List count() xSicKxBot 0 2,521 03-24-2020, 05:14 PM
Last Post: xSicKxBot
  [Tut] Python Regex – How to Count the Number of Matches? xSicKxBot 0 1,378 03-01-2020, 11:39 PM
Last Post: xSicKxBot

Forum Jump:


Users browsing this thread:

Forum software by © MyBB Theme © iAndrew 2016