Este é um post recuperado do limbo do 404 e incrementado de uns dois anos atrás.
Frequentemente eu uso esse código, então ao invés de ir no código antigo vou neste post. Basicamente o que eu quero é o seguinte: Tenho uma lista e quero dividir em n partes quase-iguais. Explico
Suponha a lista [1,2,3,4,5,6,7,8,9,10] quero dividir a lista em 5 partes.
A divisão da lista resultaria em [1,2], [3,4], [5,6], [7,8], [9,10]
Ok, isso é chato de fazer...
Mas vamos ao código.
A lista lista = [1,2,3,4,5,6,7,8,9,10] quebrando tudo:
def quebrador(lista, partes):
return list(lista[ parte*len(lista)/partes:(parte+1)*len(lista)/partes ] for parte in range(partes))
print quebrador(lista,5)
[[1, 2], [3, 4], [5, 6], [7, 8], [9, 10]]
print quebrador(lista,2)
[[1, 2, 3, 4, 5], [6, 7, 8, 9, 10]]
print quebrador(lista,10)
[[1], [2], [3], [4], [5], [6], [7], [8], [9], [10]]
print quebrador(lista,0)
[]
É possível que ocorrram variações para o tipo de lista. Inclusive é possível usar um gerador (yield) para criar a nova lista dividida.