Supposons que j'aie une liste d'éléments, disons des nombres entiers, que je voudrais diviser en sous-listes de taille presque égale. C'est assez facile à faire avec numpy ...Python diviser la liste d'éléments selon une pondération
MyList = range(30)
numpy.array_split(MyList, 3)
.... ou avec un code personnalisé ....
nSubLists = 3
subList =[]
i = 0
for item in MyList:
for i in range(nSubList):
subList[i].append(item)
if i > nSubLists:
i = 0
else:
i = i + 1
Mais supposons que maintenant que je ne veux pas les articles distribués à parts égales entre les subsists. Supposons, je veux les distribuer selon une certaine pondération
par exemple.
wgtList1 = 20%
wgtList2 = 30%
wgtList3 = 50%
Lorsque les% montrent la fraction des éléments de la liste d'origine que je veux dans chaque sous-liste. Évidemment, si la liste ne se divise pas uniformément en fonction des pourcentages ou des fractions, il peut s'agir de la division d'entier la plus proche.
Quelle est la meilleure façon d'appliquer de telles pondérations à la liste de partage en Python?