Який найкращий спосіб розділити список на приблизно рівні частини? Наприклад, якщо список містить 7 елементів і розділений на 2 частини, ми хочемо отримати 3 елементи в одній частині, а в іншій повинні бути 4 елементи.
Я шукаю щось подібне, even_split(L, n)
що розпадається L
на n
частини.
def chunks(L, n):
""" Yield successive n-sized chunks from L.
"""
for i in range(0, len(L), n):
yield L[i:i+n]
Код, наведений вище, дає шматки 3, а не 3 шматки. Я міг би просто перенести (повторити це і взяти перший елемент кожного стовпця, назвати цю частину першу, потім взяти другу та помістити її у другу частину тощо), але це руйнує впорядкованість елементів.
>>> chunkIt(range(8), 6)
=>[[0], [1], [2, 3], [4], [5], [6], [7]]