python range () с дубликатами?

Итак, все знают, что я могу получить список чисел с диапазоном вот так:

>>> range(5)
[0, 1, 2, 3, 4]

И если я хочу, скажем, 3 копии каждого числа, я могу использование:

>>> range(5)*3
[0, 1, 2, 3, 4, 0, 1, 2, 3, 4, 0, 1, 2, 3, 4]

Но есть ли способ использовать диапазон , чтобы вместо этого повторять такие копии?

[0, 0, 0, 1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4]

Есть ли быстрый и элегантный встроенный способ сделать это? sorted (range (5) * 3) имеет ненужную сложность n * log (n), а [x // 3 для x в диапазоне (3 * 5)] работает, но кажется как злоупотребление операцией // .

6
задан wim 3 July 2017 в 14:11
поделиться