[Tutor] packing a list of lists

vince spicer vinces1979 at gmail.com
Fri Aug 28 17:18:08 CEST 2009


On Fri, Aug 28, 2009 at 8:05 AM, kevin parks <kp8 at me.com> wrote:

> Back to python after a long long layoff. So i am running into some
> beginner's confusion...
>
> I am trying to plot a list of numbers in gnuplot.py. To do that I am trying
> to pack the list with an index by iterating over the list so i can get
> something like:
>
> foo = [12, 11, 9, 6, 2, 9, 3, 8, 12, 3, 5, 6]
>
> [ [1, 12], [2, 11], [3, 9], [4, 6], [5, 2], [6, 9], [7, 3], [8, 8] ... ]
>
> So that i have x, y pairs to plot. When i print in my func i get the right
> thing, for each item (note scaffolding) yet when i reurn the whole list i
> just get the last pair repeated over and over.
>
> I am not sure why this is.
>
>
> def pack(in_seq):
>        out_list=[]
>        x = 1
>        ll=[1, 1]
>        for each in in_seq:
>                ll[0] = x
>                ll[1] = each
>                out_list.append(ll)
>                #print ll
>                x = x + 1
>        print out_list
>
>
> # function declarations would go here
> def test():
>        """test function - say what this does here and skip a line
>
>        Keyword arguments:
>        none
>        """
>
>        print
>        foo = minus(200)
>        plot_me = pack(foo)
>        #print foo
>        print
>        print plot_me
>
>
> if __name__ == "__main__":
>        test()
>
>
> _______________________________________________
> Tutor maillist  -  Tutor at python.org
> http://mail.python.org/mailman/listinfo/tutor
>


Although I didn't test your code, I think what you are trying to accomplish
can be done using enumerate cleaner


def pack(foo):
    out = []
    for x,y in enumerate(foo, 1):
        out.append((x,y))
    return out
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/tutor/attachments/20090828/6148c2f2/attachment.htm>


More information about the Tutor mailing list