我正在尝试创建一个看起来像这样的结构,它可以容纳的项目数为n:
7
4 8
2 5 9
1 3 6 10
并将其转换为这样的列表:
[[1, 3, 6, 10],[2, 5, 9],[4, 8],[7]]
我无法解决这个问题,我发现每个项目先增加1
,然后2
再增加,3
依此类推,但是我不希望它们存储的方式。
fn(6)
[[1 3 6],[2 5],[4]]
我一定是有史以来最友善的人,但是测试似乎很有趣。这是一个起作用的函数:
def fn(input):
output = []
# First row:
row = [1]
incrementor = 2
while row[-1]+incrementor <= input:
row.append(row[-1]+incrementor)
incrementor += 1
output.append(row)
# Rest of rows:
for i in range(len(output[0])-1):
output.append([e-1 for e in output[-1][1:]])
print(fn(10))
>> [[1, 3, 6, 10], [2, 5, 9], [4, 8], [7]]
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句