List Comprehension Question: One to Many Mapping?

ZeD vito.detullio at gmail.com
Fri Aug 24 11:24:32 EDT 2007


Boris Borcic wrote:

>>> For example, if I have x=[ [1,2], [3,4] ]
>>> What I want is a new list of list that has four sub-lists:
>>> [[1,2], [f(1), f(2)], [3,4], [f(3), f(4)]]
>> [[a, map(f,a)] for a in x]
> [map(g,a) for a in x for g in [None,f]]
> will do it.
> 
> ...a bit too cleverly, but there's worse :
> list((yield a) or map(f,a) for a in x)

worse (in *many* ways) solutions:

l = [[a, map(f,a)] for a in x]

1) s = sum(l, [])

2) from operator import add
   r = reduce(add, l, [])

3) a = []
   for e in l: a.extend(e)

-- 
Under construction



More information about the Python-list mailing list