Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Chia list thành các chunk (mảng con) cùng kích thước trong Python

Cách phổ biến: dùng slicing trong vòng lặp với bước nhảy cố định.

Ví dụ: Chia list 12 phần tử thành 3 chunk size 4

lst = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 110, 120]
chunk_size = 4
chunks = [lst[i:i+chunk_size] for i in range(0, len(lst), chunk_size)]
print(chunks)
# [[10, 20, 30, 40], [50, 60, 70, 80], [90, 100, 110, 120]]

Các phương pháp khác

1. itertools.islice (iterator, tiết kiệm bộ nhớ)

import itertools
def chunked(iterable, size):
    it = iter(iterable)
    while True:
        chunk = list(itertools.islice(it, size))
        if not chunk:
            break
        yield chunk

2. numpy.array_split (cho mảng số lớn)

import numpy as np
chunks = np.array_split(lst, 3)  # chia thành 3 phần gần bằng nhau

3. more_itertools.chunked (thư viện bên thứ ba)

from more_itertools import chunked
list(chunked(lst, 4))