Given a string (be it either string of numbers or characters), write a Python program to split the string by every nth character.
Examples:
Input : str = "GeeksforLazyroar", n = 3 Output : ['Gee', 'ksf', 'org', 'eek', 's'] Input : str = "1234567891234567", n = 4 Output : [1234, 5678, 9123, 4567]
Method #1: Using list comprehension
Python3
# Python code to split string # by every 3rd number # String initialization string = "GeeksforLazyroar" # Defining splitting point n = 3 # Using list comprehension out = [(string[i:i + n]) for i in range ( 0 , len (string), n)] # Printing output print (out) |
Method #2: Using zip_longest
Python3
# Python code to split string of number # and character into every 4th number # Importing from itertools import zip_longest # Group function using zip_longest to split def group(n, iterable, fillvalue = None ): args = [ iter (iterable)] * n return zip_longest(fillvalue = fillvalue, * args) # String initialization str = '123GeeksForGeeks4567' # Split point n = 4 # list of separated string out_string = [' '.join(lis) for lis in group(n, str, ' ')] # Output list initialization out_no = [] # Converting list of string into list of integer for a in out_string: out_no.append(a) # Printing list print (out_no) |
['123G', 'eeks', 'ForG', 'eeks', '4567']
Method 3: Using a for loop and string slicing.
- Initialize an empty list to store the substrings.
- Define the splitting point, i.e., n=3.
- Create a for loop to iterate over the string.
- In each iteration, append the substring to the list using string slicing.
- Print the output list.
Python3
# Python code to split string # by every 3rd number # String initialization string = "GeeksforLazyroar" # Defining splitting point n = 3 # Using for loop and string slicing out = [] for i in range ( 0 , len (string), n): out.append(string[i:i + n]) # Printing output print (out) |
['Gee', 'ksf', 'org', 'eek', 's']
Time complexity: O(n), where n is the length of the input string.
Auxiliary space: O(n), as we are storing each substring in a list.