Home >Backend Development >Python Tutorial >How Can I Divide a List into Equally-Sized Chunks in Python?

How Can I Divide a List into Equally-Sized Chunks in Python?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-12-24 04:33:17126browse

How Can I Divide a List into Equally-Sized Chunks in Python?

Equally-Sized Chunks from Arbitrary-Length Lists

Dividing a list into equally-sized segments can be a valuable operation for data processing. This article presents a concise guide to achieving this task in Python.

Using a Custom Generator

A versatile approach is to utilize a generator that yields evenly-sized chunks:

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 demonstrate its usage:

pprint.pprint(list(chunks(range(10, 75), 10)))

Output:

[[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]]

List Comprehension Variant

As an alternative, a single-line solution using list comprehension can be employed:

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

However, utilizing named functions is recommended for improved code readability.

The above is the detailed content of How Can I Divide a List into Equally-Sized Chunks 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