
- Python Basic Tutorial
- Python - Home
- Python - Overview
- Python - Environment Setup
- Python - Basic Syntax
- Python - Comments
- Python - Variables
- Python - Data Types
- Python - Operators
- Python - Decision Making
- Python - Loops
- Python - Numbers
- Python - Strings
- Python - Lists
- Python - Tuples
- Python - Dictionary
- Python - Date & Time
- Python - Functions
- Python - Modules
- Python - Files I/O
- Python - Exceptions
How do you split a list into evenly sized chunks in Python?
List is one of the frequently used data structures in python. A list is a data structure in python that is mutable and has ordered sequence of elements. Following is a list of integer values
Example
lis= [5, 10, 15, 20, 25] print(lis)
Output
If you execute the above snippet, it produces the following output.
[5, 10, 15, 20, 25]
Let us discuss various ways to split a list into evenly sized chunks in Python.
Using slice operator
You can print the list of elements with equally sized chunks, and they can be solved simply by using the slice operator.
Example
In the below example we have divided 10 numbers into 5 equally sized lists.
lis=[1,2,3,4,5,6,7,8,9,10] x=0 y=10 for i in range(x,y,2): x=i print (lis[x:x+2])
Output
The following output is obtained after executing the above program.
[1, 2] [3, 4] [5, 6] [7, 8] [9, 10]
Using yield keyword
Yield is a python keyword which is used to return from a function, where it does not forget its local states.
To put it in an easier way, when we want to have multiple returns (partial solutions) from a function without existing the function and without losing it local states we use yield keyword.
Example 1
The following is an example program to demonstrate the usage of yield keyword to split a list into evenly sized chunks in python.
lis = [10,20,30,40,50,60,70,80,90,100] def chunks(l, n): for i in range(0, len(l), n): yield l[i:i + n] n = 2 t = list(chunks(lis, n)) print (t)
Output
On executing the above program, the following output is generated.
[[10, 20], [30, 40], [50, 60], [70, 80], [90, 100]]
Example 2
We defined a function to split the list in the example below.
- Iterate from 0 to the length of the list using the for loop and range() method, using the size of the chunk as the step.
- list ‘l[i:i+size_of_chunk]’ returns each chunk; yield returns the chunks.
def split(l, size_of_chunk): for i in range(0, len(l), size_of_chunk): yield l[i:i + size_of_chunk] size_of_chunk = 4 the_list = [23,56,83,19,38,64,92,56] print('The evenly sized chunk list is:',list(split(the_list, size_of_chunk)))
Output
We get the following output on executing the above code −
The evenly sized chunk list is: [[23, 56, 83, 19], [38, 64, 92, 56]]
Using list comprehension
List comprehension provides shorter syntax and allows to create new lists from other iterables like tuples, lists, strings, arrays etc.
Example
The following is an example program to split a list into evenly sized chunks in python using the list comprehension.
lis = [1, 2, 3, 4, 5, 6, 7, 8, 9] n = 3 x = [lis[i:i + n] for i in range(0, len(lis), n)] print(x)
Output
On executing the above program, the following output is generated.
[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
Using numpy module
A general-purpose package for handling arrays is numpy in Python. It offers a multidimensional array object with outstanding speed as well as tools for interacting with these arrays.
Example
Numpy's array split() method divides a list into chunks of equal size. Here, there are 6 separate chunks.
import numpy as num list = [23,56,83,19,38,64,92,56] print('The evenly sized chunk list is:',num.array_split(list, 6))
Output
Following is an output of the above code −
The evenly sized chunk list is: [array([23, 56]), array([83, 19]), array([38]), array([64]), array([92]), array([56])]
- Related Articles
- How to split a vector into chunks in R?
- Break a list into chunks of size N in Python
- How do you turn a list into a Set in Java?
- Python Program to Split a List into Two Halves
- Python - Split list into all possible tuple pairs
- How do you convert a list collection into an array in C#?
- How do you remove duplicates from a list in Python?
- How do you remove multiple items from a list in Python?
- How to Split large string in to n-size chunks in JavaScript?
- Custom list split in Python
- How do I split a multi-line string into multiple lines?
- How do you copy a list in Java?
- How do you create a list in Java?
- Java Program to Split a list into Two Halves
- Splitting an array into chunks in JavaScript
