Qual é a melhor maneira de dividir uma lista em partes aproximadamente iguais? Por exemplo, se a lista possui 7 elementos e é dividida em 2 partes, queremos obter 3 elementos em uma parte e a outra deve ter 4 elementos.
Estou procurando por algo assim se even_split(L, n)
divide L
em n
partes.
def chunks(L, n):
""" Yield successive n-sized chunks from L.
"""
for i in range(0, len(L), n):
yield L[i:i+n]
O código acima fornece pedaços de 3, em vez de 3. Eu poderia simplesmente transpor (iterar sobre isso e pegar o primeiro elemento de cada coluna, chamar essa parte um, depois pegar o segundo e colocá-lo na parte dois, etc.), mas isso destrói a ordem dos itens.
>>> chunkIt(range(8), 6)
=>[[0], [1], [2, 3], [4], [5], [6], [7]]