Maison >développement back-end >Tutoriel Python >Comment diviser une liste en parties à peu près égales en Python ?

Comment diviser une liste en parties à peu près égales en Python ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-14 15:03:02928parcourir

How to Divide a List into Approximately Equal Parts in Python?

Diviser une liste en parties de longueur approximativement égale

En Python, les morceaux de fonctions intégrés (fournis dans l'extrait de code) peuvent diviser une liste en morceaux d'une taille spécifiée. Cependant, si la liste n'est pas divisible par la taille de morceau souhaitée, cela entraînera des morceaux de taille inégale.

Pour créer des parties à peu près égales, vous pouvez utiliser un générateur de liste :

def split(a, n):
    k, m = divmod(len(a), n)
    return (a[i*k+min(i, m):(i+1)*k+min(i+1, m)] for i in range(n))

Cette fonction détermine la taille du morceau (k) et le reste (m) en divisant la longueur de la liste par le nombre de parties. Il produit ensuite des morceaux de la liste, commençant à l'index i*k et se terminant à l'index (i 1)*k. Cela garantit que les m premiers morceaux incluent l'élément supplémentaire du reste, ce qui donne des parties à peu près de taille égale.

Exemple :

>>> list(split(range(11), 3))
[[0, 1, 2, 3], [4, 5, 6, 7], [8, 9, 10]]

Dans cet exemple, la plage de liste (11) est divisée en trois parties, ce qui donne des morceaux de taille 4, 4 et 3.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn