Skip to main content

How to split a list into chunks in Python

How to split a list into chunks in Python.

Here's a detailed step-by-step tutorial on how to split a list into chunks in Python:

Step 1: Create a function to split the list

To start, we need to create a function that will split the list into chunks. Let's name the function chunk_list. This function will take two arguments: the original list and the chunk size.

def chunk_list(lst, chunk_size):
# code to split the list into chunks
pass

Step 2: Initialize an empty list to store the chunks

Inside the chunk_list function, we need to initialize an empty list that will store the chunks. Let's name this list chunked_list.

def chunk_list(lst, chunk_size):
chunked_list = []
# code to split the list into chunks
pass

Step 3: Calculate the number of chunks

Next, we need to calculate the number of chunks based on the given chunk size. We can do this by dividing the length of the original list by the chunk size and rounding it up to the nearest integer.

import math

def chunk_list(lst, chunk_size):
chunked_list = []
num_chunks = math.ceil(len(lst) / chunk_size)
# code to split the list into chunks
pass

Step 4: Split the list into chunks

Now, we can split the original list into chunks of the specified size. We can achieve this by using a loop to iterate over the range of the number of chunks. Inside the loop, we will use list slicing to extract a chunk from the original list and append it to the chunked_list.

import math

def chunk_list(lst, chunk_size):
chunked_list = []
num_chunks = math.ceil(len(lst) / chunk_size)
for i in range(num_chunks):
start = i * chunk_size
end = start + chunk_size
chunk = lst[start:end]
chunked_list.append(chunk)
return chunked_list

Step 5: Test the function

To test the chunk_list function, you can create a sample list and call the function with different chunk sizes.

import math

def chunk_list(lst, chunk_size):
chunked_list = []
num_chunks = math.ceil(len(lst) / chunk_size)
for i in range(num_chunks):
start = i * chunk_size
end = start + chunk_size
chunk = lst[start:end]
chunked_list.append(chunk)
return chunked_list

# Sample list
my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

# Splitting the list into chunks of size 3
chunks = chunk_list(my_list, 3)
print(chunks)

Output:

[[1, 2, 3], [4, 5, 6], [7, 8, 9], [10]]

You can modify the chunk size and the sample list to test different scenarios.

That's it! You now know how to split a list into chunks in Python.