Python根据权重拆分项目列表

时间:2016-04-21 21:23:48

标签: arrays python-2.7 split weighted

假设我有一个项目列表,比方说整数,我想分成几乎相同大小的子列表。这对于numpy来说相当容易......

MyList = range(30)
numpy.array_split(MyList, 3)

....或使用自定义代码....

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

但现在假设我不希望这些项目在不变量之间平均分配。假设,我希望它们根据一些加权分发

e.g。

wgtList1 = 20%
wgtList2 = 30%
wgtList3 = 50%

%显示每个子列表中我想要的原始列表中项目的分数。显然,如果列表没有根据百分比或分数均匀分配,那么它可以是最接近的整数分割。

将这样的权重应用于Python中的列表拆分的最佳方法是什么?

1 个答案:

答案 0 :(得分:1)

我能想到的程序化解决方案是这样的:

Mammal