Open In App

Python – Custom space size padding in Strings List

Improve
Improve
Like Article
Like
Save
Share
Report

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

  1. Initialize an empty list padded_list.
  2. Iterate over each string word in the input list test_list.
  3. 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.
  4. Append the padded string padded_word to padded_list.
  5. Return the padded_list.

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


Output

['   Gfg  ', '   is  ', '   Best  ']

Time complexity: O(n * (lead_size + trail_size + len(word)))

Space complexity: O(n * (lead_size + trail_size + len(word)))



Last Updated : 21 Apr, 2023
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads