# 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
Recommended Articles
Page :