Maison > développement back-end > Tutoriel Python > Comment diviser une liste en parties presque égales en Python ?

Comment diviser une liste en parties presque égales en Python ?

Barbara Streisand
Libérer: 2024-11-16 10:23:02
original
1059 Les gens l'ont consulté

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

Diviser une liste en parties presque égales

Diviser une liste en parties égales est une tâche courante en programmation. La méthode chunks() intégrée à Python offre un moyen de diviser une liste en morceaux de taille égale, mais que se passe-t-il si vous souhaitez plutôt diviser la liste en parties à peu près égales ?

Une approche pour y parvenir consiste à utilisez 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

Voici comment cela fonctionne :

  • k est le nombre d'éléments dans chaque partie, et m est le reste en divisant la longueur de la liste par n.
  • La boucle for parcourt le nombre souhaité de parties n.
  • Pour chaque partie, elle calcule les indices de début et de fin en fonction de k, m et l'itération actuelle i.
  • La tranche a[start:end] extrait les éléments de l'itération actuelle part.

Exemple :

>>> list(split(range(11), 3))
[[0, 1, 2, 3], [4, 5, 6, 7], [8, 9, 10]]
Copier après la connexion

Ce code divise une liste de longueur 11 en 3 parties, ce qui donne des parties avec 4, 4 et 3 éléments, respectivement.

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 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