On Wed, Sep 8, 2010 at 3:44 PM, Andreas Waldenburger <use...@geekmail.invalid> wrote: > On Wed, 8 Sep 2010 15:23:35 -0500 Jonno <jonnojohn...@gmail.com> wrote: > >> On Wed, Sep 8, 2010 at 3:18 PM, Jonno <jonnojohn...@gmail.com> wrote: >> [snip] >> > Now if I want to select the first item in every 2nd item of list a >> > (ie: [1,7]) can I use ::2 anywhere or do I need to create a list of >> > indices to use in a more complex for loop? >> > >> Seems like the simplest way would be: >> [row[0] for row in a][::2] > > What you're doing here is selecting every second item of the list of > first items of the items in a, not the first items of every second item > in a (head spinning yet?). > > If I'm not completely mindbent right now, these are logically > equivalent, but not computationally. > > Compare > [row[0] for row in a][::2] # (your Python code) > with > [row[0] for row in a[::2]] # (as per your description) > > The first one is more work for your computer, because it'll pick out > the first elements of *all* of the items in a, whereas the second only > picks out the first elements of every second item in a (which is only > half the amount of "picks" compared to the former). > > I just thought I'd mention it. Because it might make a difference in > one of your programs some day. And because I'm a pedant ;).
Thanks again. It is nice to know how to do things properly even though in my case it probably won't make much difference. Terry, I would have used numpy arrays (I actually use them later in the code) except the lists in my list aren't all of the same length. -- http://mail.python.org/mailman/listinfo/python-list