 Open in App
Not now

# Python | Construct string from character frequency tuple

• Last Updated : 29 Jan, 2023

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.

## Python3

 `# 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))`

Output :

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

Time Complexity: O(n)
Auxiliary Space: O(n)

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().

## Python3

 `# 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))`

Output :

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

Time Complexity: O(n)
Auxiliary Space: O(n)

Method #3 : Using reduce()

## Python3

 `# Python3 code to demonstrate working of``# String construction from character frequency``# using reduce()`` ` `# importing functools for reduce()``import` `functools`` ` `# 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 reduce()``res ``=` `functools.``reduce``(``lambda` `x, y : x ``+` `y[``0``] ``*` `y[``1``], test_list, '')`` ` `# printing result``print``(``"The constructed string is : "` `+` `str``(res))``#this code is contributed by edula vinay kumar reddy`

Output

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

Time Complexity: O(n)
Auxiliary Space: O(n)

Method #4: Using the map() function and lambda function

## Python3

 `# Initialize the character frequency tuple``char_freq ``=` `((``'g'``, ``4``), (``'f'``, ``3``), (``'g'``, ``2``))` `# Use the map function to repeat the characters``my_list ``=` `list``(``map``(``lambda` `x: x[``0``]``*``x[``1``], char_freq))` `# Use the join method to convert the list to a string``my_string ``=` `"".join(my_list)` `# Print the constructed string``print``(my_string)``# This code is contributed Vinay Pinjala.`

Output

```ggggfffgg
```

Time Complexity: O(n)
Auxiliary Space: O(n)

My Personal Notes arrow_drop_up