Insert item before each element of a list

Duncan Booth duncan.booth at invalid.invalid
Tue Oct 9 07:40:14 EDT 2012


mooremathewl at gmail.com wrote:

> What's the best way to accomplish this?  Am I over-complicating it? 
> My gut feeling is there is a better way than the following: 
> 
>>>> import itertools
>>>> x = [1, 2, 3]
>>>> y = list(itertools.chain.from_iterable(('insertme', x[i]) for i in
>>>> range(len(x)))) y
> ['insertme', 1, 'insertme', 2, 'insertme', 3]
> 
> I appreciate any and all feedback.
> 

Given the myriad of proposed solutions, I'm surprised nobody has suggested 
good old list slicing:

>>> x = [1,2,3]
>>> y = ['insertme']*(2*len(x))
>>> y[1::2] = x
>>> y
['insertme', 1, 'insertme', 2, 'insertme', 3]

-- 
Duncan Booth



More information about the Python-list mailing list