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
Release: 2024-12-24 04:33:17
Original
123 people have browsed it

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]
Copy after login

To demonstrate its usage:

pprint.pprint(list(chunks(range(10, 75), 10)))
Copy after login

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]]
Copy after login

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)]
Copy after login

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!

source:php.cn
Statement of this Website
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
Latest Articles by Author
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template