我试图寻找解决方案,但我对精确术语的无知并没有帮助,希望问题的标题和下面的代码是足够的解释.
这是我到目前为止的工作:
C = [1,1,1,1,2,3,1,1,1,2,1]
sub_C = []
chunked_C = []
counter = 0
for i in C:
counter += i
if counter <= 3:
sub_C.append(i)
else:
chunked_C.append(list(sub_C))
del sub_C[:]
counter = i
sub_C.append(i)
print chunked_C
Run Code Online (Sandbox Code Playgroud)
我希望chunked_C产生:[[1,1,1],[1,2],[3],[1,1,1],[2,1]]
不知道我哪里出错了,也许有人可以提供帮助.
编辑:我纠正了错别字.
也:
稍微修改一下,我需要将列表的不完整尾部分块,即值小于3但是我的数字用完了.
例如:
C = [1,1,1,1,2,3,1,1,1,2,1,1]
so chunked_C = [[1,1,1],[1,2],[3],[1,1,1],[2,1],[1]]
Run Code Online (Sandbox Code Playgroud)
希望有道理.
进一步修订:
如果C = [1,1,1,1,1,2,3,1,1,1,2,1]
chunked_C等于[[1,1,1],[1,1],[2],[3],[1,1,1],[2,1]]
所以我猜逻辑需要进一步修改.
正如我的问题所述,如何确定JavaScript数组中最后一项的索引值> 0
所以如果myarray = [12, 35, 56, 0, 42, 0]
如何找到此数组中最后一个正整数的索引?即在这种情况下答案是4(第42号).