python - 使用重复元素创建一个列表

sor*_*ife 2 python

我知道是否要创建这样的列表:

[0 1 2 0 1 2 0 1 2 0 1 2]
Run Code Online (Sandbox Code Playgroud)

我可以使用这个命令:

range(3) * 4
Run Code Online (Sandbox Code Playgroud)

是否有类似的方法来创建这样的列表:

[0 0 0 0 1 1 1 1 2 2 2 2]
Run Code Online (Sandbox Code Playgroud)

我的意思是没有循环的方式

der*_*sse 6

是的你可以.

>>> [e for e in range(3) for _ in [0]*4]
[0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2]
Run Code Online (Sandbox Code Playgroud)


sas*_*llo 6

整数除法可以帮助:

[x/4 for x in range(12)]
Run Code Online (Sandbox Code Playgroud)

同样的事情map:

map(lambda x: x/4, range(12))
Run Code Online (Sandbox Code Playgroud)

在python 3中完成整数除法//.

请注意,列表的乘法可能会导致 您可能 不期望结果.