Diviser une liste en N morceaux

PythonPythonBeginner
Pratiquer maintenant

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

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

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 :

  1. Calculez la taille de chaque morceau en divisant la longueur de la liste d'origine par n et arrondissez au supérieur au plus proche entier en utilisant la fonction math.ceil().
  2. Créez une nouvelle liste de taille n en utilisant les fonctions list() et range().
  3. Utilisez la fonction map() pour mapper chaque élément de la nouvelle liste à un morceau de la liste d'origine de longueur size.
  4. 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.