GeeksforGeeks App
Open App
Browser
Continue

# Python | Split string in groups of n consecutive characters

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.

My Personal Notes arrow_drop_up