Python Words Frequency in String Shorthands
In this tutorial, we will learn to get the frequency of words in a Python string. Strings in Python are a sequence of characters wrapped inside single, double, or triple quotes. Word can be defined as a substring that exists in the string. The frequency of a word is simply the total number of times that word occurs in the string. For example,
Input: string="Python Language"
Output: { 'Python':1, 'Language':1 }
To solve this problem, there are two shorthand ways
- By using dictionary comprehension
- By using Counter() and split()
We will be discussing all these approaches separately below.
Approach 1: Using dictionary comprehension
Dictionaries are much like lists with an extra parameter called keys to access the elements of a dictionary. Now, to extract the words in the string, we will use the split() function, and to count the occurrence we will use the count() function.
Algorithm
Follow the algorithm to understand the approach better.
Step 1- Define a string with values
Step 2- Print the string
Step 3- Declare a dictionary to store the result
Step 4- Using dictionary comprehension store the words as the key and their count as the values
Step 5- Print the resulting dictionary
Python Program 1
Look at the program to understand the implementation of the above-mentioned approach. We have used a dictionary to count and display all the words in the string. The result will be stored using dictionary comprehension which is a shorter syntax for dictionary operations.
string=" This tutorial for Python tutorial"
print(string)
# dictionary and count() and split()
word= {key: string.count(key) for key in string.split()}
# print result
print("Words in the string")
print(word)
This tutorial for Python tutorial
Words in the string
{'This': 1, 'tutorial': 2, 'for': 1, 'Python': 1}
Approach 2: By using the Counter and split() function
The Counter is used to count hashable objects. It implicitly creates a hash table of an iterable when invoked. It returns an itertool of all the known elements in the Counter object. To extract the words, we will use the split() function of the String class.
Algorithm
Follow the algorithm to understand the approach better.
Step 1- Import counter in program
Step 2- Define a string with values
Step 3- Print the string
Step 4- Declare another variable that will store the value returned by the Counter
Step 5- Extract words using split()
Step 6- Print the result
Python Program 2
Look at the program to understand the implementation of the above-mentioned approach. To use the Counter(), we have to import Counter from collections. Python Counter is a subclass of the dictionary class.
from collections import Counter
string=" This tutorial for Python for"
print(string)
word= Counter(string.split())
# print result
print("Words in the string")
print(word)
This tutorial for Python for
Words in the string
Counter({'for': 2, 'This': 1, 'tutorial': 1, 'Python': 1})
Conclusion
In this tutorial, we have discussed the shortcut approaches for finding the frequency of words in Python. We have also discussed some built-in functions in our program. split(), count() and Counter() were used in the approaches discussed above.