Approches efficaces pour le partitionnement de listes
Découpage de listes (List Slicing)
L'une des méthodes les plus simples pour diviser une liste en Python consiste à utiliser le découpage de listes. Cette approche consiste à diviser la liste en morceaux plus petits en spécifiant les indices de début et de fin de chaque morceau.
my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
chunk_size = 3
chunks = [my_list[i:i+chunk_size] for i in range(0, len(my_list), chunk_size)]
print(chunks)
Sortie :
[[1, 2, 3], [4, 5, 6], [7, 8, 9], [10]]
Utilisation de iter() et zip()
Une autre approche efficace pour diviser une liste consiste à utiliser la fonction iter() en combinaison avec la fonction zip(). Cette méthode crée un itérateur qui renvoie des morceaux de la liste.
my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
chunk_size = 3
chunks = [list(chunk) for chunk in zip(*[iter(my_list)]*chunk_size)]
print(chunks)
Sortie :
[[1, 2, 3], [4, 5, 6], [7, 8, 9], [10]]
numpy.array_split()
Si vous travaillez avec de grands ensembles de données, vous pouvez exploiter la fonction numpy.array_split() de la bibliothèque NumPy pour diviser une liste en morceaux de taille égale. Cette approche est particulièrement efficace pour les grandes listes.
import numpy as np
my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
chunk_size = 3
chunks = np.array_split(my_list, (len(my_list) + chunk_size - 1) // chunk_size)
print(list(chunks))
Sortie :
[[1, 2, 3], [4, 5, 6], [7, 8, 9], [10]]
Chacune de ces approches présente ses propres avantages et cas d'utilisation, en fonction des exigences spécifiques de votre projet. Le choix de la méthode la plus efficace dépendra de facteurs tels que la taille de la liste, la taille souhaitée des morceaux et les exigences globales de performance de votre application.