我有一个数组:
A = [1,8,2,6,4,8,1,0,1,6,7,3,1,4,9,1,2,1,2,1,1,2]
并且我想将其重新组合/分组为更小的数组,每个条目中至少有一个值
10
,即:
A_reb = [[1,8,2],[6,4],[8,1,0,1],[6,7],[3,1,4,9],[1,2,1,2,1,1,2]]
A_reb = [11, 10, 10, 13, 17, 10]
有没有一种有效的方法可以在Python中做到这一点?预先感谢。
试试这个:
def rebin_array(arr):
rebinned = []
current_group = []
current_sum = 0
for num in arr:
if current_sum + num <= 10:
current_group.append(num)
current_sum += num
else:
rebinned.append(current_group)
current_group = [num]
current_sum = num
if current_group:
rebinned.append(current_group)
return rebinned
A = [1,8,2,6,4,8,1,0,1,6,7,3,1,4,9,1,2,1,2,1,1,2]
A_rebinned = rebin_array(A)
A_rebinned_sum = [sum(group) for group in A_rebinned]
print("A_rebinned:", A_rebinned)
print("A_rebinned_sum:", A_rebinned_sum)