Related Articles
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], , [4, 5, 6], ]
```

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], , [4, 5, 6], ]
```

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

Attention geek! Strengthen your foundations with the Python Programming Foundation Course and learn the basics.

To begin with, your interview preparations Enhance your Data Structures concepts with the Python DS Course. And to begin with your Machine Learning Journey, join the Machine Learning – Basic Level Course

My Personal Notes arrow_drop_up