Je cherche un moyen rapide, propre et pythonique de diviser une liste en exactement n partitions presque égales.
partition([1,2,3,4,5],5)->[[1],[2],[3],[4],[5]]
partition([1,2,3,4,5],2)->[[1,2],[3,4,5]] (or [[1,2,3],[4,5]])
partition([1,2,3,4,5],3)->[[1,2],[3,4],[5]] (there are other ways to slice this one too)
Il y a plusieurs réponses ici Itération sur les tranches de liste qui se rapprochent beaucoup de ce que je veux, sauf qu'ils sont axés sur la taille de la liste, et je me soucie de la numéro des listes (certaines d'entre elles comportent également la mention None). Il est évidemment possible de convertir ces listes de manière triviale, mais je suis à la recherche d'une meilleure pratique.
De même, des personnes ont signalé d'excellentes solutions ici Comment diviser une liste en morceaux de taille égale ? pour un problème très similaire, mais je suis plus intéressé par le nombre de partitions que par la taille spécifique, tant qu'elle est dans la limite de 1. Encore une fois, c'est trivialement convertible, mais je suis à la recherche d'une meilleure pratique.