Implementar la División de Listas en su Código
Ahora que comprende el concepto de división de listas y cómo determinar el tamaño óptimo de fragmento, profundicemos en los detalles de la implementación.
Usar la Función Incorporada iter()
Una de las formas más sencillas de dividir una lista en Python es utilizar la función incorporada iter()
junto con el corte (slicing):
my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
chunk_size = 3
chunks = [chunk for chunk in [my_list[i:i+chunk_size] for i in range(0, len(my_list), chunk_size)]]
print(chunks)
Esto mostrará:
[[1, 2, 3], [4, 5, 6], [7, 8, 9], [10]]
Usar la Palabra Clave yield
Como alternativa, puede utilizar una función generadora con la palabra clave yield
para crear los fragmentos:
def chunk_list(lst, chunk_size):
for i in range(0, len(lst), chunk_size):
yield lst[i:i+chunk_size]
my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
chunk_size = 3
chunks = list(chunk_list(my_list, chunk_size))
print(chunks)
Esto también mostrará:
[[1, 2, 3], [4, 5, 6], [7, 8, 9], [10]]
La función generadora chunk_list()
devuelve (yield) cada fragmento uno a la vez, lo que puede ser más eficiente en términos de memoria que crear la lista completa de fragmentos de antemano.
Manejar Tamaños de Fragmento Desiguales
En algunos casos, el último fragmento puede tener un tamaño diferente al de los demás, especialmente si la longitud de la lista original no es divisible exactamente por el tamaño de fragmento. Puede manejar esto comprobando la longitud del último fragmento y ajustando el tamaño de fragmento en consecuencia:
my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
chunk_size = 3
chunks = [my_list[i:i+chunk_size] for i in range(0, len(my_list), chunk_size)]
if len(chunks[-1]) < chunk_size:
chunks[-1] = my_list[-len(chunks[-1]):]
print(chunks)
Esto mostrará:
[[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11]]
Al ajustar el tamaño del último fragmento, puede asegurarse de que todos los elementos de la lista original se incluyan en la salida dividida en fragmentos.
Recuerde, los detalles específicos de la implementación pueden variar según su caso de uso y los requisitos de su aplicación. Los ejemplos proporcionados aquí deben darle una base sólida para comenzar a trabajar con la división de listas en sus proyectos de Python.