I get it!

>>> def  f (*a):
 print a
 print zip (a)     # My mistake
 print zip (*a)   # Gerard's solution.

>>> f (l1, l2, l3)
([1, 2, 3], [4, 5, 6], [7, 5, 34])   #  Argument: tuple of lists
[([1, 2, 3],), ([4, 5, 6],), ([7, 5, 34],)]   # My mistake
[(1, 4, 7), (2, 5, 5), (3, 6, 34)]   # That's what I want

Thank you all

Frederic


----- Original Message -----
From: "Gerard Flanagan" <[EMAIL PROTECTED]>
Newsgroups: comp.lang.python
To: <python-list@python.org>
Sent: Sunday, August 27, 2006 2:59 PM
Subject: Re: unpaking sequences of unknown length


>
> Anthra Norell wrote:
> > Hi,
> >
> >    I keep working around a little problem with unpacking in cases in which 
> > I don't know how many elements I get. Consider this:
> >
> >       def  tabulate_lists (*arbitray_number_of_lists):
> >             table = zip (arbitray_number_of_lists)
> >             for record in table:
> >                # etc ...
> >
> > This does not work, because the zip function also has an *arg parameter, 
> > which expects an arbitrary length enumeration of
arguments
>
> maybe I don't understand the problem properly, but you can use '*args'
> as 'args' or as '*args', if you see what I mean!, ie.
>
>        def  tabulate_lists (*arbitray_number_of_lists):
>              table = zip (*arbitray_number_of_lists)
>              for record in table:
>                 # etc ...
>
> for example:
>
> def sum_columns(*rows):
>     for col in zip(*rows):
>         yield sum(col)
>
> for i, s in enumerate( sum_columns( [1,2], [3,2], [5,1] ) ):
>     print 'Column %s: SUM=%s' % (i,s)
>
> Column 0: SUM=9
> Column 1: SUM=5
>
> -----------------------------------------------------
>
> alternatively:
>
> import itertools as it
>
> def sum_columns2( iterable ):
>     for col in it.izip( *iterable ):
>         yield sum(col)
>
> def iter_rows():
>     yield [1,2]
>     yield [3,2]
>     yield [5,1]
>
> print list(  sum_columns2( iter_rows() ) )
>
> #(izip isn't necessary here, zip would do.)
>
> -----------------------------------
>
> Gerard
>
> --
> http://mail.python.org/mailman/listinfo/python-list

-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to