Esta publicación discutirá cómo dividir una lista en partes de la longitud dada n en Python.

Por ejemplo:


Input:  [1, 2, 3, 4], n = 2

Resultado: [[1, 2], [3, 4]]

 
Si la longitud de la secuencia no es divisible por igual por la longitud dada, debemos llenar la última partición con elementos sobrantes.


Input:  [1, 2, 3, 4, 5], n = 2

Resultado: [[1, 2], [3, 4], [5]]

 
Las siguientes son las diferentes formas de dividir una lista en partes de igual longitud en Python:

1. Usando el corte

Una solución simple es escribir un generador que produzca los fragmentos sucesivos de tamaño especificado de la lista. Esto se puede lograr fácilmente con el corte, como se muestra a continuación:

Descargar  Ejecutar código

2. Uso de la comprensión de listas

Alternativamente, puede usar la comprensión de listas. Esto crea una nueva lista donde cada elemento de la lista resulta de alguna operación aplicada a cada miembro.

Descargar  Ejecutar código

3. Usando itertools módulo

Python itertools módulo ofrece la islice() función que crea un segmento de la lista. Aquí hay un generador para lograr esto:

Descargar  Ejecutar código

 
Esto se puede acortar con el iter() función:

Descargar  Ejecutar código

4. Uso toolz.itertoolz módulo

Finalmente, tienes la toolz.itertoolz módulo que ya tiene el partition() para dividir la secuencia en tuplas de cierta longitud.

Descargar Código

Se trata de dividir una lista en partes de un tamaño determinado en Python.