Python | Construct string from character frequency tuple

Sometimes, while working with data, we can have a problem in which we need to perform construction of string in a way that we have a list of tuple having character and it’s corresponding frequency and we require to construct a new string from that. Let’s discuss certain ways in which this task can be performed.

Method #1 : Using loop
This is brute force method in which this task can be performed. In this, we iterate the list and perform string concatenation using * operator and keep building string this way.

filter_none

edit
close

play_arrow

link
brightness_4
code

# Python3 code to demonstrate working of
# String construction from character frequency
# using loop
  
# initialize list 
test_list = [('g', 4), ('f', 3), ('g', 2)]
  
# printing original list 
print("The original list : " + str(test_list))
  
# String construction from character frequency
# using loop
res = ''
for char, freq in test_list:
    res = res + char * freq
  
# printing result
print("The constructed string is : " + str(res))

chevron_right


Output :



The original list : [('g', 4), ('f', 3), ('g', 2)]
The constructed string is : ggggfffgg

 

Method #2 : Using join() + list comprehension
The combination of above functionalities can be used to perform this task. In this, we perform the task of extraction using list comprehension and making string using join().

filter_none

edit
close

play_arrow

link
brightness_4
code

# Python3 code to demonstrate working of
# String construction from character frequency
# using join() + list comprehension
  
# initialize list 
test_list = [('g', 4), ('f', 3), ('g', 2)]
  
# printing original list 
print("The original list : " + str(test_list))
  
# String construction from character frequency
# using join() + list comprehension
res = ''.join(char * freq for char, freq in test_list)
  
# printing result
print("The constructed string is : " + str(res))

chevron_right


Output :

The original list : [('g', 4), ('f', 3), ('g', 2)]
The constructed string is : ggggfffgg



My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.