Dividir una lista en N trozos

PythonPythonBeginner
Practicar Ahora

This tutorial is from open-source community. Access the source code

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

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:

  1. Calcula el tamaño de cada trozo dividiendo la longitud de la lista original por n y redondeando hacia arriba al entero más cercano utilizando la función math.ceil().
  2. Crea una nueva lista de tamaño n utilizando las funciones list() y range().
  3. Utiliza la función map() para mapear cada elemento de la nueva lista a un trozo de la lista original de longitud size.
  4. 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.