我有一个数字列表:
numbers = [1, 2, 3, 4]
我想要生成一个重复 n
次的列表,例如(对于n = 3
):
[1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4]
问题在于,我只想使用 itertools
来完成这个任务,因为我非常注重性能。
我尝试使用以下表达式:
list(itertools.chain.from_iterable(itertools.repeat(numbers, 3)))
但它给出了我这样的结果:
[1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4]
这显然不是我需要的。
是否有一种仅使用 itertools
完成此操作的方法,而不使用排序、循环和列表理解?我最接近的结果是:
list(itertools.chain.from_iterable([itertools.repeat(i, 3) for i in numbers]))
但它也使用了列表理解,我希望避免使用。
itertools
一样高效。 - pylang