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

Comment diviser une liste en parties presque égales ?

Patricia Arquette
Patricia Arquetteoriginal
2024-11-13 04:24:02892parcourir

How to Split a List into Nearly Equal Parts?

Diviser une liste en parties égales

Lorsque vous travaillez avec une liste d'éléments, il peut être nécessaire de la diviser en parties plus petites, à peu près égales parties. Cela peut être particulièrement utile pour des tâches telles que le traitement des données, le calcul parallèle ou les algorithmes distribués. Voici une exploration d'une méthode pour diviser efficacement une liste en n parties.

Solution :

Pour obtenir une division presque égale d'une liste en n parties, ce qui suit des mesures peuvent être prises :

  1. Calculez le quotient, k, et le reste, m, en divisant la longueur de la liste par n : k, m = divmod(len(a), n).
  2. Utiliser un générateur de liste pour générer les parties divisées : (a[i*k min(i, m):(i 1)*k min(i 1, m)] pour i dans la plage (n)).

Cette approche garantit que les parties sont divisées presque également, les m premières parties contenant un élément supplémentaire par rapport aux n-m restants. parties.

Exemple :

Pour illustrer l'efficacité de cette méthode, considérons une liste de 11 entiers : range(11). Diviser cette liste en 3 parties à l'aide de la fonction split donne le résultat suivant :

>>> list(split(range(11), 3))

[[0, 1, 2, 3], [4, 5, 6, 7], [8, 9, 10]]

Comme on peut l'observer, la liste est divisée en trois parties de tailles à peu près égales, la première partie contenant quatre éléments et la deux autres parties contenant chacune trois éléments.

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