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!