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))