创建超出 1 到 15 数据范围的嵌套楼梯列表

问题描述 投票:0回答:2

输入:

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]
python list
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]

0
投票

我注意到

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)
© www.soinside.com 2019 - 2024. All rights reserved.