我正在尝试像珠算一样递增Python数字列表。
这段代码在执行
list = [0,0,0,0]
units = 4
def m(list, units):
for e in range(len(list)):
if units:
list[e] = list[e] + 1
units -= 1
这段代码在执行
m(list, units)
时能够正常工作,会使列表变成[1,1,1,1]。但问题在于,当units的值为units = 2
等时,列表将增加为[2,2,1,1](这也没问题)。但是,当我从一个不均匀的列表中运行m()
函数时,列表将从list[0]递增到最终变成[3,3,1,1],而不是[2,2,2,2]。
有没有一种Pythonic的方式可以让函数从最小值开始递增列表以实现平均分布?
list.index(min(list))
开始吗?(顺便提一下,list
不是一个好的列表名称,因为它会掩盖内置函数)? - jonrsharpe