Home >Backend Development >Python Tutorial >How to Efficiently Chunk a List in Python?

How to Efficiently Chunk a List in Python?

Barbara Streisand
Barbara StreisandOriginal
2024-12-22 05:16:10603browse

How to Efficiently Chunk a List in Python?

How to Chunk a List in Python

In Python, we often encounter situations where we need to divide a list into smaller, equally-sized chunks. This can be achieved using various approaches, one of which is the chunks() generator function.

def chunks(lst, n):
    """Yield successive n-sized chunks from lst."""
    for i in range(0, len(lst), n):
        yield lst[i:i + n]

To use the chunks() function, simply pass the list you want to chunk as the first argument, and the desired chunk size as the second argument. The function will then return a generator that yields successive chunks of the specified size.

For example, the following code will chunk a list of numbers into chunks of 10:

>>> list(chunks(range(10, 75), 10))
[[10, 11, 12, 13, 14, 15, 16, 17, 18, 19],
 [20, 21, 22, 23, 24, 25, 26, 27, 28, 29],
 [30, 31, 32, 33, 34, 35, 36, 37, 38, 39],
 [40, 41, 42, 43, 44, 45, 46, 47, 48, 49],
 [50, 51, 52, 53, 54, 55, 56, 57, 58, 59],
 [60, 61, 62, 63, 64, 65, 66, 67, 68, 69],
 [70, 71, 72, 73, 74]]

Another approach, though not as preferable, is to use a list comprehension:

[lst[i:i + n] for i in range(0, len(lst), n)]

Whether you choose to use the chunks() function or a list comprehension, both methods effectively chunk a list into equally-sized pieces.

The above is the detailed content of How to Efficiently Chunk a List in Python?. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn