Search code examples
pythonlistpython-2.7mutable

Best way to extend a list with itself N times


So I have a list [a,b,c] and I want to obtain [a,b,c,a,b,c,...a,b,c].

I can of course do this with two nested loops, but there must be a better way? itertools.cycle() would have been solution if I could provide a count.

Two constraints:

  1. it should work in 2.7 (but for the sake of curiosity I'm interested in a 3.x solution)
  2. list elements should be independent copies (they are mutable types)

Solution

  • Eventually I came up with:

    [copy.copy(e) for _ in range(N) for e in sourceList]