On Wed, Nov 10, 2010 at 01:30, Steven D'Aprano <st...@pearwood.info> wrote:
>
> Richard D. Moores wrote:
>
>> def proper_divisors_sum(n):
>>    return sum(list(divisors(n))) - n
>
> There's no need to call list first. sum() will happily operate on any sort of 
> iterable -- lists, sums, iterators, generators, range objects. Anything 
> except strings, which would be pointless even if you could do it, which you 
> can't, but even so you can fool sum() to work with strings with a bit of 
> effort.
>
>
>> Using Steven's suggested speed test
>> this gets 6.2404818210135886
>>
>> My up-to-now fastest version,
>
> [...]
>>
>> gets 6.1753780857622473
>>
>> So they're about even.
>
> I'd say that the difference is probably statistically insignificant. Even if 
> it's consistent on your PC, on another PC with a slightly different 
> processor, slightly different memory, or a different operating system, it 
> could very well go the other way.

I think that's what I meant. :)

> In any case, since those times are ~6 seconds per 100,000 loops, the real 
> difference is only 60 microseconds -- completely trivial unless you're doing 
> some *serious* number crunching.
>
>
> P.S. don't take that as a put down -- you should be pleased that your code is 
> around as fast as Tim Peter's code :)

Nah. But where is Tim Peter's code?

Dick
_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor

Reply via email to