Python智能舍入数字

use*_*318 0 python numbers list rounding

我有一些奇怪的数字,例如19 or 23.这两个将需要分开5 lists,这样5个列表的总和将是19.换句话说,每个列表中的3.8为19/5 = 3.8.然而问题是我不能有小数,我想要舍入数字.是否有任何方法可以相应地对数字进行舍入,将4,4,3,4,4放入列表而不是3.8次?

更有甚者,有些不分为5个不同的数字.有些可能像77/12,因此分为12差异.列表中每个都有数字6或7,最后添加到77.

知道我怎么能解决这个问题吗?

谢谢!

And*_*ark 8

def split(number, length):
    div, mod = divmod(number, length)
    return [div+1]*mod + [div]*(length-mod)

>>> split(19, 5)
[4, 4, 4, 4, 3]
>>> split(23, 4)
[6, 6, 6, 5]
Run Code Online (Sandbox Code Playgroud)

原始版本:

def split(number, length):
    result = [number//length]*length
    for i in range(number%length):
        result[i] += 1
    return result
Run Code Online (Sandbox Code Playgroud)