如何制作第 i 个元素出现 i 次的列表?

How to make a list where the i-th element appears i times?

这道题可能很简单,但我做不出来。例如,如果 n = 5,我想要答案列表 = [1, 2, 2, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 5]。如果 n = 6,我想要答案列表 = [1, 2, 2, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6]

下面的代码是我第一次做的,但我什至怀疑这种格式是否正确。

rules = []
rules.extend([x for x in range(n)])

如果我使用这种代码,它只会使 list = [1, 2, 3, 4, 5 ...... , n] 我应该将 x 格式更改为其他格式吗?

rules = []
rules.extend([[x] * x for x in range(n)])

或者如果我使用这种代码,它会以这样的列表格式生成列表,list = [[1], [2], [2], [3], [3], [3] ]

使用可以使用嵌套列表理解:

>>> n = 5
>>> rules = [i for i in range(1, n + 1) for __ in range(i)]
>>> rules
[1, 2, 2, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 5]