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

问题描述

这可能是一个非常简单的问题,但我无法通过这个问题。例如,如果 n = 5,我想要答案列表 = [1,2,3,4,5,5]。如果 n = 6,我想要答案列表 = [1,6,6]

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

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

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

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

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

解决方法

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

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

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...