Skip to content
Related Articles

Related Articles

Improve Article
Save Article
Like Article

Python | Split a list into sublists of given lengths

  • Last Updated : 03 Apr, 2019

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.




# 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]]

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




# 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]]

My Personal Notes arrow_drop_up
Recommended Articles
Page :

Start Your Coding Journey Now!