Do I need a nested lambda to do this?
Kent Johnson
kent37 at tds.net
Tue Apr 26 06:03:46 EDT 2005
raoul wrote:
> I can't figure this one out. Trying to be unnecessarily functional I
> suspect.
>
> I have the following lists.
>
> vals = [1.000,2.344,4.2342]
> tab = [((0,1),(0,3),(0,4)),
> ((2,2),(3,0),(3,9)),
> ((3,4),(6,3),(7,1))]
>
> I'm trying to create a one liner using map/reduce/lambda/zip(* etc to
> do replace the first element of each pair in each row by the the values
> in vals as follows:
>
> tab = [((1.000,1),(1.000,3),(1.000,4)),
> ((2.344,2),(2.344,0),(2.344,9)),
> ((4.2342,4),(4.2342,3),(4.2342,1))]
I don't know about map/etc but it's pretty easy using list comp and gen exp:
print [ tuple( (val, t[1]) for t in tt ) for val, tt in zip(vals, tab) ]
Kent
More information about the Python-list
mailing list