Peter Otten wrote: > from itertools import imap > > def summit_array(data=data, lookup=lookup): > a = array.array("B") > a.fromstring(data) > return sum(a), sum(imap(lookup.__getitem__, a)) > > $ python -m timeit -s'from summit import summit_array as summit' 'summit()' > 100 loops, best of 3: 9.15 msec per loop > > I think I'll stop here...
Yes, this was the fastest approach of all the alternatives I tried. Plugging the algorithm in the tool, it makes it about twice as fast as the generator-sum method I was using before, and about _five_ time as fast as a naive for loop. The use of an array is particularly clever; I never would have thought of that. Thanks to everyone for their ideas. Amusingly I posted it late last night (well, this morning I guess), not expecting much, at least until the next day, but got a factor of two speedup within half an hour! -- Erik Max Francis && [EMAIL PROTECTED] && http://www.alcyone.com/max/ San Jose, CA, USA && 37 20 N 121 53 W && AIM, Y!M erikmaxfrancis It is morale that wins the victory. -- Gen. George C. Marshall -- http://mail.python.org/mailman/listinfo/python-list