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

How Can I Split a Python List into Equally Sized Chunks?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-12-21 05:54:08908browse

How Can I Split a Python List into Equally Sized Chunks?

Splitting Lists into Chunks of Equal Size

Dividing an extensive list into equally-sized segments can be a common requirement in Python programming. The following methods demonstrate how to achieve this.

Generator-based Solution:

A convenient option is to utilize a generator function that yields chunks of the desired size. Here's the implementation:

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

Example:

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 Approach:

While less readable than the function-based solution, a one-liner using list comprehension is also possible:

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

For Python 2 compatibility, replace range with xrange.

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