你的解决方案看起来不错,只是需要一个好的结局。。。
从最终输出中,要对阵列进行分区,可以执行以下操作
a = [[(5, 1)], [(0, 3), (1, 3), (2, 3), (3, 3), (4, 3), (6, 3)]]
b = [[(0, 2), (1, 2), (2, 2), (3, 2)]]
def regroup(lst):
tmp = list()
for i in range(len(lst)):
step = lst[i][0][1]
for j in range(0,len(lst[i]),step):
tmp.append(lst[i][j:j+step])
return sorted(tmp , key=lambda x : x[0][0])
regroup(a)
[[(0, 3), (1, 3), (2, 3)], [(3, 3), (4, 3), (6, 3)], [(5, 1)]]
regroup(b)
[[(0, 2), (1, 2)], [(2, 2), (3, 2)]]