SpreadTooThin wrote:
> Simon Brunning wrote:
> > On 10/16/06, Simon Brunning <[EMAIL PROTECTED]> wrote:
> > > >>> a = [1,2,3,4,5,6,7,8,9,10]
> > > >>> a.sort(key=lambda item: (((item-1) %3), item))
> > > >>> a
> > > [1, 4, 7, 10, 2, 5, 8, 3, 6, 9]
> >
> > Re-reading the OP's post, perhaps sorting isn't what's required:
> >
> > >>> a[::3] + a[1::3] + a[2::3]
> > [1, 4, 7, 10, 2, 5, 8, 3, 6, 9]
> >
> > --
> > Cheers,
> > Simon B
> > [EMAIL PROTECTED]
> > http://www.brunningonline.net/simon/blog/
>

> Ok so this is what I got.. but there is an odd side effect:
>
> def reslice(series):
>       series.sort()
>       i = 1
>       newseries = series[::3]
>       while(1):
>               c = series[i::3]
>               if len(c) >= 3:
>                       newseries = newseries + c
>               else:
>                       break
>               i = i + 1
>       return newseries
>
> a = [2,1,4,3,6,5,8,7,10,9]
> b = reslice(a)
> print b
> >>> [1, 4, 7, 10, 2, 5, 8, 3, 6, 9, 4, 7, 10]
>
> I have one extra 10 that I shouldn't...


I think my loop termination is incorrect...
maybe I should just stop when my new series size is the same size as
the original?

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

Reply via email to