Repeat list to max number of elements

python

Solution

I'd probably use `iterools.cycle` and `itertools.islice`:

>>> from itertools import cycle, islice
>>> lst = [1, 2, 3]
>>> list(islice(cycle(lst), 7))
[1, 2, 3, 1, 2, 3, 1]

Problem

What is the most efficient method to repeat a list up to a max element length? To take this: ``` lst = ['one', 'two', 'three'] max_length = 7 ``` And produce this: ``` final_list = ['one', 'two', 'three', 'one', 'two', 'three', 'one'] ``` See also How to replicate array to specific length array for Numpy-specific methods. See also Circular list iterator in Python for lazy iteration over such data.

Original source

Related problems