convert loop to list comprehension

Paul Rubin http
Fri Sep 8 19:49:33 EDT 2006


"bvdp at xplornet.com" <bvdp at xplornet.com> writes:
> seq = [2, 3, 1, 9]
> tmp = []
> for a in range(len(seq)):
>         tmp.extend([a]*seq[a])
> 
> which correctly returns:
> 
> [0, 0, 1, 1, 1, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3]
> 
> Question is, can I do this as a list comprehension?

import operator
x = reduce(operator.add, ([i]*a for i,a in enumerate(seq)), [])



More information about the Python-list mailing list