Fatest standard way to sum bytes (and their squares)?
Peter Otten
__peter__ at web.de
Sun Aug 12 06:18:39 EDT 2007
Peter Otten wrote:
> lookup = [i**2 for i in range(256)]
>
>> def summit_str(data=data):
>> return sum(ord(x) for x in data), sum(ord(x)**2 for x in data)
>>
>> def summit_array(data=data, lookup=lookup):
>> a = array.array("B")
>> a.fromstring(data)
>> return sum(a), sum(lookup[x] for x in a)
> $ python -m timeit -s'from summit import summit_array as summit'
> 'summit()' 100 loops, best of 3: 12.9 msec per loop
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...
Peter
More information about the Python-list
mailing list