Open In App

Python | Split a list into sublists of given lengths

Last Updated : 20 Feb, 2023
Comments
Improve
Suggest changes
Like Article
Like
Report

The problem of splitting a list into sublists is quite generic but to split in sublist of given length is not so common. Given a list of lists and list of length, the task is to split the list into sublists of given length. Example: 

Input : Input = [1, 2, 3, 4, 5, 6, 7]
        length_to_split = [2, 1, 3, 1]

Output: [[1, 2], [3], [4, 5, 6], [7]]

  Method #1: Using islice to split a list into sublists of given length, is the most elegant way. 

Python3
# Python code to split a list 
# into sublists of given length. 

from itertools import islice 

# Input list initialization 
Input = [1, 2, 3, 4, 5, 6, 7] 

# list of length in which we have to split 
length_to_split = [2, 1, 3, 1] 

# Using islice 
Inputt = iter(Input) 
Output = [list(islice(Inputt, elem)) 
        for elem in length_to_split] 

# Printing Output 
print("Initial list is:", Input) 
print("Split length list: ", length_to_split) 
print("List after splitting", Output) 
Output:
Initial list is: [1, 2, 3, 4, 5, 6, 7]
Split length list:  [2, 1, 3, 1]
List after splitting [[1, 2], [3], [4, 5, 6], [7]]

Time Complexity: O(n)
Auxiliary Space: O(1)

  Method #2: Using zip is another way to split a list into sublists of given length. 

Python3
# Python code to split a list into 
# sublists of given length. 
from itertools import accumulate 

# Input list initialization 
Input = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] 

# list of length in which we have to split 
length_to_split = [2, 2, 3, 3] 

# Using islice 
Output = [Input[x - y: x] for x, y in zip( 
        accumulate(length_to_split), length_to_split)] 

# Printing Output 
print("Initial list is:", Input) 
print("Split length list: ", length_to_split) 
print("List after splitting", Output) 
Output:
Initial list is: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
Split length list:  [2, 2, 3, 3]
List after splitting [[1, 2], [3, 4], [5, 6, 7], [8, 9, 10]]

Time Complexity: O(1)

Auxiliary Space: O(1)


Practice Tags :

Similar Reads