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

*chevron_right*

*filter_none*

**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) ` |

*chevron_right*

*filter_none*

**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.