List Comprehension Question: One to Many Mapping?
davbrow at gmail.com
Fri Aug 24 07:41:08 CEST 2007
On Aug 23, 9:24 pm, beginner <zyzhu2... at gmail.com> wrote:
> Hi All,
> How do I map a list to two lists with list comprehension?
> 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)]]
> [1,2] is mapped to [1,2] and [f(1), f(2)] and [3,4] is mapped to
> [3,4], [f(3), f(4)].
> I just can't find any way to do that with list comprension. I ended up
> using a loop (untested code based on real code):
> for y in x:
> l.append([f(z) for z in y])
This may be what you want:
l = [[y, [f(z) for z in y]] for y in x]
But It's a bit dense. How about:
for y in x:
Fy = [f(z) for z in y]
More information about the Python-list