How to split a list into multiple list using python


How to split a list into multiple list using python

In this post, we will learn how to split a list into multiple lists of N chunks in python.

A List is one of the in-built data types in Python. It is used to store multiple elements in a single variable.

my_list = ['a','b','c']

Now, to split a list into multiple sublists in python, we have to :

  1. First find the length of the list
  2. Divide the list by 2, to get the middle index
  3. Use the middle index to divide the list into chunks of equal items.

Let's split a number list using the above steps.

Split List into Multiple lists in Python

Example:

my_list = [1,2,3,4,5,6]

length = len(my_list)

mid_index = length // 2

first_chunk = my_list[:mid_index]
second_chunk = my_list[mid_index:]


print(first_chunk) 
print(second_chunk)

The output is:

[1, 2, 3]
[4, 5, 6]

In the above example, we have used the len() to get the length of the list.

Then to get the middle index we have divided the length by 2 like this length // 2. we find the mid_index as 3.

Next, to get the first chunk, we used my_list[:mid_index]. It means get the items from my_list starting from index 0 up to the mid_index (excluding the item in index 3).

Similarly to get the other half of the list we used my_list[mid_index:], which means get the items from index 3 (mid_index) up to the last index.

We can also use the python library numpy to split a list into n parts.

Split a List into N parts using numpy

To split a list into N parts of equal length, we can use the numpy.array_split() function in numpy modules.

The numpy is a python library that helps us to work with arrays and have a collection of high-level mathematical functions.

Read more about it here: Numpy Documentation

So to divide a list into N parts of sublists we first import numpy and then use the numpy.array_split() function.

Syntax:

numpy.array_split(arr, section)

arr- it's the list to be split.

section : section we want the list to be divided.

Example:

import numpy as np

my_list = [1,2,3,4,5,6]

split_part = np.array_split(my_list, 2)

print(split_part)

The output is:

[[1,2,3],[4,5,6]]

It returns a list with sublists of the equally parted list items.

In the above example, we have split the given list into two parts using np.array_split(my_list, 2).

If you change the section argument to 3, it will split the list into three parts like this

split_part = np.array_split(my_list, 3)
print(split_part)

Output:

[[1,2],[3,4],[5,6]]

Related Topics:

Split String and get the first element using python