J'ai le nombre total d'éléments dans la gamme N
et un certain nombre de morceaux nb
La meilleure façon de séparer gamme dans les gammes n égales en Python
Je veux diviser N
en nb
meilleures plages égales possibles, avec juste la numéro de départ et le numéro de fin. Ainsi, par exemple, N=24
et nb=5
en sortie:
0,5 5,10 10,15 15,20 20,24
Alors que N=28
et nb=5
devrait sortie:
0,5 5,10 10,16 16,22 22,28 (the rest of `N/nb` division is equally distributed on the 3 last subranges)
Basé sur un commentaire, j'ai cette méthode:
def partition(lst, n):
division = len(lst)/n
return [lst[round(division * i):round(division * (i + 1))] for i in range(n)]
def ranges(N, nb):
return ["{},{}".format(r.start, r.stop) for r in partition(range(N), nb)]
>>> ranges(28, 5)
['0,6', '6,11', '11,17', '17,22', '22,28']
est-il une meilleure façon de le faire?
Ceci est quelque peu similaire à cette question: https://stackoverflow.com/q/2659900/270986 –