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...

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

Reply via email to