In this tutorial, we are going to learn how to create a run-length encoding in Python. Given a string return a new string containing char and frequency.
For example, the string tutorialspoint will be encoded as t3u1o2r1i2a1l1s1p1n1. The order is every char+frequency. Join all of them and return. See the steps below to write the program.
Write the function with the name run_length_encoding.
Initialize a dictionary with OrderedDict to get an initial count of chars as 0.
Iterate over every character of the string and increment the count in the dictionary.
Join all the chars and their frequencies. And print it.
Initialize the strings and invoke the function.
Example
Let's see the code for the above text.
# importing the collections import collections # function def run_length_encoding(string): # initialzing the count dict count_dict = collections.OrderedDict.fromkeys(string, 0) # iterating over the string for char in string: # incrementing the frequency count_dict[char] += 1 # initializing the empty encoded string encoded_string = "" # joining all the chars and their frequencies for key, value in count_dict.items(): # joining encoded_string += key + str(value) # printing the encoded string print(encoded_string) # initializing the strings string = "tutorialspoint" # invoking the function run_length_encoding(string) # another string string = "aaaaaabbbbbccccccczzzzzz" run_length_encoding(string)
Output
If you run the above code, you will get the following output.
t3u1o2r1i2a1l1s1p1n1 a6b5c7z6
Conclusion
If you have any doubts in the tutorial, mention them in the comment section.