重复列表理解中的元素

Col*_*lin 14 python list-comprehension

我有这个列表理解:

[[x,x] for x in range(3)]
Run Code Online (Sandbox Code Playgroud)

这导致此列表:

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

但我想要的是这个清单:

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

生成此列表最简单的方法是什么?

Ign*_*ams 12

[y for x in range(3) for y in [x, x]]
Run Code Online (Sandbox Code Playgroud)

  • 如果想要生成它,可以写`[x]*2`而不是`[x,x]`. (4认同)

Sil*_*ost 5

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


joa*_*uin 5

通用解决方案;

m = 3   #the list of integers
n = 2   # of repetitions
[x for x in range(m) for y in range(n)]
Run Code Online (Sandbox Code Playgroud)