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
Libérer: 2024-11-14 15:03:02
original
905 Les gens l'ont consulté

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))
Copier après la connexion

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]]
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal