"groupby" is brilliant!
James Stroud
jstroud at ucla.edu
Wed Jun 14 15:29:49 EDT 2006
Alex Martelli wrote:
> James Stroud <jstroud at ucla.edu> wrote:
> ...
>
>>def doit(rows, doers, i=0):
>> for r, alist in groupby(rows, itemgetter(i)):
>> if len(doers) > 1:
>> doit(alist, doers[1:], i+1)
>> doers[0](r)
>
>
> Isn't this making N useless slices (thus copies, for most kinds of
> sequences) for a doers of length N? Since you're passing i anyway, it
> seems to me that:
>
> def doit(rows, doers, i=0):
> for r, alist in groupby(rows, itemgetter(i)):
> if len(doers) > i+1:
> doit(alist, doers, i+1)
> doers[i](r)
>
> is equivalent to your code, but avoids these slices (thus copies).
>
>
> Alex
Yes, it does seem the copies are useless. Thank you.
James
--
James Stroud
UCLA-DOE Institute for Genomics and Proteomics
Box 951570
Los Angeles, CA 90095
http://www.jamesstroud.com/
More information about the Python-list
mailing list