Introducción
En Python, podemos dividir una lista en listas más pequeñas de tamaño igual utilizando una función simple. Esto puede ser útil cuando queremos procesar grandes cantidades de datos en fragmentos más pequeños. En este desafío, se te pedirá escribir una función que tome una lista y un entero n como entrada y devuelva una lista de n listas más pequeñas, cada una de las cuales contiene un número igual de elementos de la lista original.
Dividir una lista en N trozos
Escribe una función de Python llamada chunk_into_n(lst, n) que tome una lista lst y un entero n como entrada y devuelva una lista de n listas más pequeñas, cada una de las cuales contiene un número igual de elementos de la lista original. Si la lista original no se puede dividir uniformemente en n listas más pequeñas, el último trozo debe contener los elementos restantes.
Para resolver este problema, puedes seguir estos pasos:
- Calcula el tamaño de cada trozo dividiendo la longitud de la lista original por
ny redondeando hacia arriba al entero más cercano utilizando la funciónmath.ceil(). - Crea una nueva lista de tamaño
nutilizando las funcioneslist()yrange(). - Utiliza la función
map()para mapear cada elemento de la nueva lista a un trozo de la lista original de longitudsize. - Devuelve la lista de listas más pequeñas.
Tu función debe tener la siguiente firma:
def chunk_into_n(lst: list, n: int) -> list:
from math import ceil
def chunk_into_n(lst, n):
size = ceil(len(lst) / n)
return list(
map(lambda x: lst[x * size:x * size + size],
list(range(n)))
)
chunk_into_n([1, 2, 3, 4, 5, 6, 7], 4) ## [[1, 2], [3, 4], [5, 6], [7]]
Resumen
En este desafío, has aprendido cómo dividir una lista en listas más pequeñas de tamaño igual utilizando Python. También has aprendido cómo utilizar la función math.ceil() para redondear hacia arriba al entero más cercano y la función map() para aplicar una función a cada elemento de una lista.