如何有效地將數字均勻分佈在「n」個組中?Python - 將列表中的數字均勻劃分爲列表
我想到了這個功能,但它並沒有完全均勻地分配這個數字。
def DivideList(total_num, div_num):
div = int(total_num)/int(div_num)
if (div_num < total_num):
div_list = [[div*i, div*(i+1)] for i in range(div_num)]
div_list[div_num-1][1] = total_num
else:
div_list = [[i, i+1] for i in range(total_num)]
return div_list
print DivideList(100, 8)
這也可以通過列表理解來實現嗎?
編輯:
實施例:
DivideList(20, 4) >> [[0, 5], [5, 10], [10, 15], [15, 20]]
DivideList(14, 4) >> [[0, 4], [4, 8], [8, 11], [11, 14]]
請發表您想要的結果 – Ajax1234
也請提你想什麼來實現 –
你有沒有考慮使用numpy.linspace樣品的例子嗎?它可以使用與您正在查找的參數類似的參數以常規方式生成數字。更多的信息在這裏: https://docs.scipy.org/doc/numpy/reference/generated/numpy.linspace.html – ma3oun