list comprehension to repeat element in a list by element value

旧街凉风 提交于 2019-12-02 13:05:23
[x for x in l for _ in range(x)]
# Out[5]: [3, 3, 3, 1]

But I prefer more verbose, yet more straigforward (literal) functions from itertools:

from itertools import chain, repeat
list(chain.from_iterable(repeat(x, x) for x in l))

Yet another solution.

l = [3,1]

ll = reduce(lambda a, b: a + [b] * b, l, [])

print ll
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!