输入:
data = [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
预期输出 需要帮助:
输出应如下所示:
[15]
[14, 13]
[12, 11, 10]
[9, 8, 7, 6]
[5, 4, 3, 2, 1]
当前解决方案:
end_value = 15
data = list(range(1,end_value+1)[::-1])
iterations = round(end_value**0.5)+1
last_index = [0]+[i*(i+1)+1 for i in range(iterations)]
out = [data[last_index[i]:last_index[i+1]] for i in range(len(last_index)-1)]
for p in out: print(p)
电流输出:
[15]
[14, 13]
[12, 11, 10, 9]
[8, 7, 6, 5, 4, 3]
[2, 1]
你可以像这样破坏性地做:
data = [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
e = 1
while data:
print(data[:e])
data = data[e:]
e += 1
输出:
[15]
[14, 13]
[12, 11, 10]
[9, 8, 7, 6]
[5, 4, 3, 2, 1]
我注意到
last_index
存在问题,修复代码后开始工作,但我现在不确定如何计算iterations
:
更新代码:
iterations = 6
end_value = 15
data = list(range(1,end_value+1)[::-1])
last_index = [(i ** 2 + i)//2 for i in range(iterations)]
out = [data[last_index [i]:last_index [i+1]] for i in range(len(last_index )-1)]
for p in out: print(p)