Python program to Calculate Frequency of a Characters in a String

Calculate The  Frequency of a Characters

In this python program, we will be  Calculating the Frequency of a character in a string or how many times a character is present in a string.

The string is a datatype in programing language and is formed when 2 or more characters join or concatenate together. Now it is not necessary for a string to have a distinct character, it can be meaningless or meaningful can have distinct characters or can be a combination of the same characters.

Check Frequency of Characters in Python

Method 1

This method is the most naive method –

  • Iterate on the input string
  • For each character in string count and prints its frequency
  • Use .count() method to do so.
Run
string = "Yolo Life"

for i in string:
    frequency = string.count(i)
    print(str(i) + ": " + str(frequency), end=", ")

Output

Y: 1, o: 2, l: 1, o: 2, : 1, L: 1, i: 1, f: 1, e: 1, 

Method 2

This method uses a dictionary in python.

  • Iterate on the input string
  • If a character appears for the first time, add key: char and value: 1
  • If char already exists in the dictionary increment the value counter by 1 against key char
Run
str = "YOLO LIFE"

# create dictionary to store key value pair
dict = {}

for i in str:
    # if i already appears as key in dict, increment the count
    if i in dict:
        dict[i] += 1

    # else i appears for the first time, add to dict
    else:
        dict[i] = 1

# printing result 
print(dict)

Output

{'Y': 1, 'O': 2, 'L': 2, ' ': 1, 'I': 1, 'F': 1, 'E': 1}

Method 3 (Using Counter)

This method uses a counter from collections

Run
from collections import Counter
string = "Yolo Life"

output = Counter(string)

print(output)

Output

Counter({'o': 2, 'Y': 1, 'l': 1, ' ': 1, 'L': 1, 'i': 1, 'f': 1, 'e': 1})

Method 4 Using Set() and Count()

This method is better than the previous method that used count as we are converting the string into a set of unique items.

So, Loop will not run for duplicate items and only for unique items in the set()

Run
string = "aabbbccccdddddeeeeee"

# using set() reduces string "YOLO LIFE" with 20 items
# to a set of 5 items : {'a', 'b', 'c', 'd', 'e'}
# now print count each item in set appearing in string
# storing result as dictionary
# for loop runs only 5 times
res = {i: string.count(i) for i in set(string)}

print(res)

Output

{'a': 2, 'c': 4, 'b': 3, 'e': 6, 'd': 5}

Method 5 Using dict.get()

The get() method returns the value of the item with the specified key.

Run
string = "YOLO LIFE"

res = {}

for key in string:
    # if item doesn't exist res.get(key, 0) returns 0 as result
    # we use res.get(key, 0) + 1 so as to initialize value as 1 on first occurrence
    # if item exits then res.get(key, 0) + 1 just increments the previously held value
    res[key] = res.get(key, 0) + 1

# printing result
print (res)

Output

{'Y': 1, 'O': 2, 'L': 2, ' ': 1, 'I': 1, 'F': 1, 'E': 1}

Prime Course Trailer

Related Banners

Get PrepInsta Prime & get Access to all 200+ courses offered by PrepInsta in One Subscription

6 comments on “Python program to Calculate Frequency of a Characters in a String”


  • Yash

    string = “Yolo Life”
    dic={}
    for i in string:
    if i in dic.keys() or i==” “:
    pass
    else:
    a=string.count(i)
    dic[i]=a

    print(dic)


  • Mohit

    #using list concept
    a=input()
    b=[]
    for i in a:
    if(i not in b):
    print(i,”:”,a.count(i))
    b.append(i)


  • Mohit

    #using set concept
    a=input()
    b=set(a)
    for i in b:
    print(i,”:”,a.count(i))


    • nitesh

      from collections import Counter
      s=”string”
      a=Counter(s)
      for i in a:
      print(i,”:”,a[i],end=”\n”)