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

My Personal Notes arrow_drop_up