Introduction
En Python, nous pouvons diviser une liste en listes plus petites de taille égale en utilisant une fonction simple. Cela peut être utile lorsque nous voulons traiter de grandes quantités de données par petits blocs. Dans ce défi, vous devrez écrire une fonction qui prend une liste et un entier n en entrée et renvoie une liste de n listes plus petites, chacune contenant un nombre égal d'éléments de la liste d'origine.
Diviser une liste en N morceaux
Écrivez une fonction Python appelée chunk_into_n(lst, n) qui prend une liste lst et un entier n en entrée et renvoie une liste de n listes plus petites, chacune contenant un nombre égal d'éléments de la liste d'origine. Si la liste d'origine ne peut pas être divisée en n listes plus petites de manière égale, le dernier morceau devrait contenir les éléments restants.
Pour résoudre ce problème, vous pouvez suivre les étapes suivantes :
- Calculez la taille de chaque morceau en divisant la longueur de la liste d'origine par
net arrondissez au supérieur au plus proche entier en utilisant la fonctionmath.ceil(). - Créez une nouvelle liste de taille
nen utilisant les fonctionslist()etrange(). - Utilisez la fonction
map()pour mapper chaque élément de la nouvelle liste à un morceau de la liste d'origine de longueursize. - Retournez la liste des listes plus petites.
Votre fonction devrait avoir la signature suivante :
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]]
Sommaire
Dans ce défi, vous avez appris à diviser une liste en listes plus petites de taille égale à l'aide de Python. Vous avez également appris à utiliser la fonction math.ceil() pour arrondir au supérieur au plus proche entier et la fonction map() pour appliquer une fonction à chaque élément d'une liste.