Skip to content
Related Articles
Open in App
Not now

Related Articles

Python | Frequency of each character in String

Improve Article
Save Article
  • Difficulty Level : Easy
  • Last Updated : 16 Jan, 2023
Improve Article
Save Article

Given a string, the task is to find the frequencies of all the characters in that string and return a dictionary with key as the character and its value as its frequency in the given string. 

Method #1 : Naive method Simply iterate through the string and form a key in dictionary of newly occurred element or if element is already occurred, increase its value by 1. 

Python3




# Python3 code to demonstrate
# each occurrence frequency using
# naive method
 
# initializing string
test_str = "GeeksforGeeks"
 
# using naive method to get count
# of each element in string
all_freq = {}
 
for i in test_str:
    if i in all_freq:
        all_freq[i] += 1
    else:
        all_freq[i] = 1
 
# printing result
print("Count of all characters in GeeksforGeeks is :\n "
      + str(all_freq))


Output

Count of all characters in GeeksforGeeks is :
 {'G': 2, 'e': 4, 'k': 2, 's': 2, 'f': 1, 'o': 1, 'r': 1}

Time Complexity: O(n)

Auxiliary Space: O(n)

Method #2: Using collections.Counter() The most suggested method that could be used to find all occurrences is this method, which actually gets all element frequencies and could also be used to print single element frequencies if required. 

Python3




# Python3 code to demonstrate
# each occurrence frequency using
# collections.Counter()
from collections import Counter
 
# initializing string
test_str = "GeeksforGeeks"
 
# using collections.Counter() to get
# count of each element in string
res = Counter(test_str)
 
# printing result
print("Count of all characters in GeeksforGeeks is :\n "
      + str(res))


Output

Count of all characters in GeeksforGeeks is :
 Counter({'e': 4, 'G': 2, 'k': 2, 's': 2, 'f': 1, 'o': 1, 'r': 1})

Time Complexity: O(n)

Auxiliary Space:  O(n)

  Method #3 : Using dict.get() get() method is used to check the previously occurring character in string, if its new, it assigns 0 as initial and appends 1 to it, else appends 1 to previously holded value of that element in dictionary. 

Python3




# Python3 code to demonstrate
# each occurrence frequency using
# dict.get()
 
# initializing string
test_str = "GeeksforGeeks"
 
# using dict.get() to get count
# of each element in string
res = {}
 
for keys in test_str:
    res[keys] = res.get(keys, 0) + 1
 
# printing result
print("Count of all characters in GeeksforGeeks is : \n"
      + str(res))


Output

Count of all characters in GeeksforGeeks is : 
{'G': 2, 'e': 4, 'k': 2, 's': 2, 'f': 1, 'o': 1, 'r': 1}

Time Complexity: O(n)

Auxiliary Space: O(n)

Method #4: Using set() + count() count() coupled with set() can also achieve this task, in this we just iterate over the set converted string and get the count of each character in original string and assign that element with that value counted using count(). 

Python3




# Python3 code to demonstrate
# each occurrence frequency using
# set() + count()
 
# initializing string
test_str = "GeeksforGeeks"
 
# using set() + count() to get count
# of each element in string
res = {i: test_str.count(i) for i in set(test_str)}
 
# printing result
print("The count of all characters in GeeksforGeeks is :\n "
      + str(res))


Output

The count of all characters in GeeksforGeeks is :
 {'k': 2, 'f': 1, 'o': 1, 'e': 4, 'G': 2, 's': 2, 'r': 1}

Time Complexity: O(n)

Auxiliary Space:  O(n)

Method #5: Using set() + operator.countOf() operator.countOf() coupled with set() can also achieve this task, in this we just iterate over the set converted string and get the count of each character in original string and assign that element with that value counted using operator.countOf(). 

Python3




# Python3 code to demonstrate
# each occurrence frequency using
# set() + operator.countOf()
import operator as op
# initializing string
test_str = "GeeksforGeeks"
 
# using set() + operator.countOf() to get count
# of each element in string
res = {i: op.countOf(test_str,i) for i in set(test_str)}
 
# printing result
print("The count of all characters in GeeksforGeeks is :\n "
      + str(res))


Output

The count of all characters in GeeksforGeeks is :
 {'r': 1, 'o': 1, 's': 2, 'G': 2, 'e': 4, 'k': 2, 'f': 1}

Time Complexity: O(n)

Auxiliary Space:  O(n)


My Personal Notes arrow_drop_up
Related Articles

Start Your Coding Journey Now!