Need a strange sort method...
SpreadTooThin
bjobrien62 at gmail.com
Mon Oct 16 15:56:35 EDT 2006
Simon Brunning wrote:
> On 10/16/06, Simon Brunning <simon at brunningonline.net> 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
> simon at brunningonline.net
> 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...
More information about the Python-list
mailing list