Python – Custom space size padding in Strings List
In this article given a Strings List, the task is to write a Python program to pad each string with spaces with specified leading and trailing number of spaces required.
Examples:
Input: test_list = [“Gfg”, “is”, “Best”], lead_size = 3, trail_size = 2
Output: [‘ Gfg ‘, ‘ is ‘, ‘ Best ‘]
Explanation: Each word starts after 3 spaces and add 2 spaces after completion.
Input: test_list = [“Gfg”, “Best”], lead_size = 3, trail_size = 2
Output: [‘ Gfg ‘, ‘ Best ‘]
Explanation: Each word starts after 3 spaces and add 2 spaces after completion.
Method #1: Using loop
In this, we perform the task of adding trailing and leading required spaces using loop. The * operator is used to get required number of spaces.
- Python3
Python3
# Python3 code to demonstrate working of # Custom space size padding in Strings List # Using loop # initializing lists test_list = [ "Gfg" , "is" , "Best" ] # printing original list print ( "The original list is : " + str (test_list)) # initializing padding numbers lead_size = 3 trail_size = 2 res = [] for ele in test_list: # * operator handles number of spaces res.append((lead_size * ' ' ) + ele + (trail_size * ' ' )) # printing result print ( "Padded Strings : " + str (res)) |
Output:
The original list is : ['Gfg', 'is', 'Best'] Padded Strings : [' Gfg ', ' is ', ' Best ']
Time Complexity: O(n)
Auxiliary Space: O(n)
Method #2: Using list comprehension
Similar way as above, the only difference being the use of list comprehension as a one-liner alternative to solve problems.
- Python3
Python3
# Python3 code to demonstrate working of # Custom space size padding in Strings List # Using list comprehension # initializing lists test_list = [ "Gfg" , "is" , "Best" ] # printing original list print ( "The original list is : " + str (test_list)) # initializing padding numbers lead_size = 3 trail_size = 2 # using list comprehension for one liner alternative res = [(lead_size * ' ' ) + ele + (trail_size * ' ' ) for ele in test_list] # printing result print ( "Padded Strings : " + str (res)) |
Output:
The original list is : ['Gfg', 'is', 'Best'] Padded Strings : [' Gfg ', ' is ', ' Best ']
The time and space complexity for all the methods are the same:
Time Complexity: O(n)
Space Complexity: O(n)
Approach#3: Using f-strings and format specifiers
The function custom_padding takes a list of strings, a lead size, and a trial size as input. It iterates over each string in the input list and applies custom padding to each string using format specifiers and string methods. The resulting padded string is then appended to a new list. Finally, the padded list is returned.
- Initialize an empty list padded_list.
- Iterate over each string word in the input list test_list.
- Apply custom padding to word using format specifiers and string methods.
- Add lead_size spaces before the word using the format specifier >{lead_size+len(word)}.
- Add trail_size spaces after the word using the ljust() method.
- Append the padded string padded_word to padded_list.
- Return the padded_list.
- Python3
Python3
# Python program for the above approach # Function to find the custom padding in # the strings def custom_padding(test_list, lead_size, trail_size): padded_list = [] for word in test_list: padded_word = f "{word:>{lead_size+len(word)}}" .ljust( lead_size + trail_size + len (word)) padded_list.append(padded_word) return padded_list # Driver Code test_list = [ "Gfg" , "is" , "Best" ] lead_size = 3 trail_size = 2 print (custom_padding(test_list, lead_size, trail_size)) |
[' Gfg ', ' is ', ' Best ']
Time complexity: O(n * (lead_size + trail_size + len(word)))
Space complexity: O(n * (lead_size + trail_size + len(word)))