【发布时间】:2015-09-06 10:48:45
【问题描述】:
我正在尝试增加一个像算盘一样的 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 = 2 list 将增加到 [2,2,1,1] (这也很好)问题是当我从一个不均匀的列表中运行 m()function 时,列表将从 list[0] 增加到最终 [3, 3,1,1] 而不是 [2,2,2,2]。
有没有一种 Pythonic 方法可以让函数从最低值递增列表以实现均匀分布?
【问题讨论】:
-
你的意思是你想从
list.index(min(list))开始(仅供参考,list是不是一个好的列表名称,因为它会影响内置)? -
是的,乔恩——就是这样,我想从最小索引开始——我只使用“列表”名称来让问题更容易阅读——谢谢——有没有从列表的最低索引开始的好方法?
-
是的,有 - 使用我提供的 sn-p 并找出插入位置。
-
啊,完美的乔恩——问题得到了完美的回答——知道该把它放在哪里——谢谢。
-
我是新人 - 如何将其标记为已回答?