GeeksforGeeks App
Open App
Browser
Continue

# Python | Append suffix/prefix to strings in list

Sometimes, while working with Python, we can a problem in which we need to pad strings in lists at trailing or leading position. This kind of problem is quite common and can occur in day-day programming or web development. Let’s discuss a way in which this task can be performed.

Method #1: Using + operator + list comprehension In this task, we just append the string at rear or front position using + operator and list comprehension is used to iterate through all the elements.

## Python3

 `# Python3 code to demonstrate working of``# Append suffix / prefix to strings in list``# Using list comprehension + "+" operator` `# initializing list``test_list ``=` `[``'a'``, ``'b'``, ``'c'``, ``'d'``]` `# printing list``print``(``"The original list : "` `+` `str``(test_list))` `# initializing append_str``append_str ``=` `'gfg'` `# Append suffix / prefix to strings in list``pre_res ``=` `[append_str ``+` `sub ``for` `sub ``in` `test_list]``suf_res ``=` `[sub ``+` `append_str ``for` `sub ``in` `test_list]` `# Printing result``print``(``"list after prefix addition : "` `+` `str``(pre_res))``print``(``"list after suffix addition : "` `+` `str``(suf_res))`

Output :

```
The original list : ['a', 'b', 'c', 'd']
list after prefix addition : ['gfga', 'gfgb', 'gfgc', 'gfgd']
list after suffix addition : ['agfg', 'bgfg', 'cgfg', 'dgfg']```

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

Method #2: Using itertools.starmap(): The python library itertools provides a function called “starmap()” which can be used to apply the same function to multiple inputs from an iterable, in this case, it can be used to append the suffix/prefix to each string in the list, this approach would have a time complexity of O(n) and auxiliary space of O(n) as well.

## Python3

 `#Using itertools.starmap()``import` `itertools` `#initializing list``test_list ``=` `[``'a'``, ``'b'``, ``'c'``, ``'d'``]` `#printing original list``print``(``"The original list :"``, test_list)` `#initializing append_str``append_str ``=` `'gfg'` `#Append suffix / prefix to strings in list``pre_res ``=` `list``(itertools.starmap(``lambda` `s: append_str ``+` `s, test_list))``suf_res ``=` `list``(itertools.starmap(``lambda` `s: s ``+` `append_str, test_list))` `#Printing result``print``(``"list after prefix addition :"``, pre_res)``print``(``"list after suffix addition :"``, suf_res)`

Output

```The original list : ['a', 'b', 'c', 'd']
list after prefix addition : ['gfga', 'gfgb', 'gfgc', 'gfgd']
list after suffix addition : ['agfg', 'bgfg', 'cgfg', 'dgfg']```

Method #3: Using map and lambda functions

## Python3

 `def` `add_prefix_suffix(lst, prefix, suffix):` `    ``pre_res ``=` `list``(``map``(``lambda` `x: prefix ``+` `x, lst))` `    ``suf_res ``=` `list``(``map``(``lambda` `x: x ``+` `suffix, lst))` `    ``return` `pre_res, suf_res` `test_list ``=` `[``'a'``, ``'b'``, ``'c'``, ``'d'``]` `print``(``"The original list :"``, test_list)` `pre_res, suf_res ``=` `add_prefix_suffix(test_list, ``'gfg'``, ``'gfg'``)` `print``(``"list after prefix addition :"``, pre_res)` `print``(``"list after suffix addition :"``, suf_res)``#This code is contributed by Vinay Pinjala.`

Output

```The original list : ['a', 'b', 'c', 'd']
list after prefix addition : ['gfga', 'gfgb', 'gfgc', 'gfgd']
list after suffix addition : ['agfg', 'bgfg', 'cgfg', 'dgfg']```

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

Method #4: Using For loop.

## Python3

 `test_list ``=` `[``'a'``, ``'b'``, ``'c'``, ``'d'``]``prefix,suffix``=``'gfg'``, ``'gfg'``print``(``"The original list :"``, test_list)``pre_res ``=` `[]``suf_res ``=` `[]``for` `item ``in` `test_list:``  ``pre_res.append(prefix ``+` `item)``  ``suf_res.append(item ``+` `suffix)` `print``(``"list after prefix addition :"``, pre_res)` `print``(``"list after suffix addition :"``, suf_res)``#This code is contributed by tvsk.`

Output

```The original list : ['a', 'b', 'c', 'd']
list after prefix addition : ['gfga', 'gfgb', 'gfgc', 'gfgd']
list after suffix addition : ['agfg', 'bgfg', 'cgfg', 'dgfg']```

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

Method #5: Using numpy module:

Step-by-step approach:

• Initialize an empty list to store the result of prefix addition and another empty list to store the result of suffix addition.
• Iterate through the original list, and for each element, append the prefix to the beginning of the element and append the result to the prefix addition list.
• Similarly, append the suffix to the end of the element and append the result to the suffix addition list.
• Print the original list, prefix addition list, and suffix addition list.

## Python3

 `import` `numpy as np``# initializing list``test_list ``=` `[``'a'``, ``'b'``, ``'c'``, ``'d'``]``prefix,suffix``=``'gfg'``, ``'gfg'``pre_res ``=` `np.char.add(prefix, test_list)``suf_res ``=` `np.char.add(test_list, suffix)``# printing list``print``(``"The original list :"``, test_list)``# Printing result``print``(``"list after prefix addition :"``, pre_res)``print``(``"list after suffix addition :"``, suf_res)``#This code is contributed by Jyothi Pinjala.`

Output:

```The original list : ['a', 'b', 'c', 'd']
list after prefix addition : ['gfga' 'gfgb' 'gfgc' 'gfgd']
list after suffix addition : ['agfg' 'bgfg' 'cgfg' 'dgfg']```

Time complexity: O(n), where n is the number of elements in the input list. This is because we iterate through each element once to perform the prefix and suffix addition.
Auxiliary Space: O(n), where n is the number of elements in the input list. This is because we create two lists of size n to store the results of the prefix and suffix addition

Method #6: Using the reduce() function from the functools module

Step-by-step approach:

• Import the reduce() function from the functools module.
• Create a test_list of strings.
• Create two variables prefix and suffix with the desired string values.
• Use the reduce() function with a lambda expression to iterate through each element item in test_list, concatenate prefix to it, and append the result to pre_res.
• Use the reduce() function with a lambda expression to iterate through each element item in test_list, concatenate suffix to it, and append the result to suf_res.
• Print the original list, test_list, the list after prefix addition, pre_res, and the list after suffix addition, suf_res.

## Python3

 `from` `functools ``import` `reduce` `test_list ``=` `[``'a'``, ``'b'``, ``'c'``, ``'d'``]``prefix, suffix ``=` `'gfg'``, ``'gfg'``pre_res ``=` `reduce``(``lambda` `res, item: res ``+` `[prefix ``+` `item], test_list, [])``suf_res ``=` `reduce``(``lambda` `res, item: res ``+` `[item ``+` `suffix], test_list, [])``print``(``"The original list :"``, test_list)``print``(``"List after prefix addition :"``, pre_res)``print``(``"List after suffix addition :"``, suf_res)`

Output

```The original list : ['a', 'b', 'c', 'd']
List after prefix addition : ['gfga', 'gfgb', 'gfgc', 'gfgd']
List after suffix addition : ['agfg', 'bgfg', 'cgfg', 'dgfg']```

Time complexity: O(n), where n is the length of test_list.
Auxiliary space: O(n), where n is the length of test_list.

My Personal Notes arrow_drop_up