Idiomatic way of repeating items in a sequence.

Jeff Epler jepler at unpythonic.net
Mon Jun 30 12:04:21 EDT 2003


Here's one:

    def repeatitems(sequence, repetitions):
        r = [None] * repetitions
        return [i for i in sequence for j in r]

Here's another, using generator functions (so the return is an iterator,
not a list):

    def repeatitems(sequence, repetitions):
        r = [None] * repetitions
        for item in sequence:
            for i in r:
                yield item

In both cases I've performed an "optimization" by precomputing a list
with len(repetitions) instead of computing it once for each item in
sequence.  Whether this makes a difference, I don't know.

Jeff





More information about the Python-list mailing list