Open In App

Python | Split string in groups of n consecutive characters

Improve
Improve
Improve
Like Article
Like
Save Article
Save
Share
Report issue
Report

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 = "Geeksforgeeks", 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 = "Geeksforgeeks"
 
# 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)


Output

['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 = "Geeksforgeeks"
 
# 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)


Output

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



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