回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我有一大串的数字,比如:</p>
<pre><code>a = [133000, 126000, 123000, 108000, 96700, 96500, 93800,
93200, 92100, 90000, 88600, 87000, 84300, 82400, 80700,
79900, 79000, 78800, 76100, 75000, 15300, 15200, 15100,
8660, 8640, 8620, 8530, 2590, 2590, 2580, 2550, 2540, 2540,
2510, 2510, 1290, 1280, 1280, 1280, 1280, 951, 948, 948,
947, 946, 945, 609, 602, 600, 599, 592, 592, 592, 591, 583]
</code></pre>
<p>我想做的是在这个列表中逐个循环检查一个值是否高于某个阈值(例如40000)。如果它高于这个阈值,我们就把这个值放到一个新的列表中,然后忘掉它。否则,我们会等到值的总和超过阈值,然后将值放入列表中,然后继续循环。最后,如果最终值的和不到阈值,我们就把它们添加到最后一个列表中。你知道吗</p>
<p>如果我不清楚,考虑一个简单的例子,阈值是15</p>
<pre><code>[20, 10, 9, 8, 8, 7, 6, 2, 1]
</code></pre>
<p>最终列表应如下所示:</p>
<pre><code>[[20], [10, 9], [8, 8], [7, 6, 2, 1]]
</code></pre>
<p>我的数学和python真的很差,我已经不知所措了。我想出了一些基本的代码,但实际上不起作用:</p>
<pre><code>def sortthislist(list):
list = a
newlist = []
for i in range(len(list)):
while sum(list[i]) >= 40000:
newlist.append(list[i])
return newlist
</code></pre>
<p>任何帮助都将不胜感激。抱歉,邮件太长了。你知道吗</p>