# Idiomatic way of repeating items in a sequence.

Duncan Booth duncan at NOSPAMrcp.co.uk
Mon Jun 30 13:54:46 CEST 2003

```anlri at wmdata.com (alr) wrote in

> I need to repeat each item in a list n times, like this function does:
>
>   def repeatitems(sequence, repetitions):
>       newlist = []
>       for item in sequence:
>           for i in range(repetitions):
>               newlist.append(item)
>       return newlist
>
> Output:
>
>  >>> repeatitems(['a', 'b', 'c'], 3)
>   ['a', 'a', 'a', 'b', 'b', 'b', 'c', 'c', 'c']
>
> Clear and simple. But i wonder if there is a more idiomatic way.

The most obvious one that springs to mind is just a slight simplification

def repeatitems(sequence, repetitions):
newlist = []
for item in sequence:
newlist.extend([item] * repetitions)
return newlist

--
Duncan Booth                                             duncan at rcp.co.uk
int month(char *p){return(124864/((p[0]+p[1]-p[2]&0x1f)+1)%12)["\5\x8\3"
"\6\7\xb\1\x9\xa\2\0\4"];} // Who said my code was obscure?

```