Dividir una lista en N partes de aproximadamente la misma longitud
¿Cuál es la mejor manera de dividir una lista enaproximadamente ¿a partes iguales? Por ejemplo, si la lista tiene 7 elementos y está dividida en 2 partes, queremos obtener 3 elementos en una parte, y la otra debe tener 4 elementos.
Estoy buscando algo comoeven_split(L, n)
que se rompeL
dentron
partes.
def chunks(L, n):
""" Yield successive n-sized chunks from L.
"""
for i in xrange(0, len(L), n):
yield L[i:i+n]
El código anterior da los trozos de 3, en lugar de 3 trozos. Simplemente podría transponer (iterar sobre esto y tomar el primer elemento de cada columna, llamar a esa primera parte, luego tomar la segunda y colocarla en la segunda parte, etc.), pero eso destruye el orden de los artículos.