Long integers, xrange and number theory
Mark Edward Tristan Dickinson
dickinsm at umich.edu
Sat Dec 7 14:05:20 EST 2002
> > Is there a better way? And is there a really good reason why xrange
> > doesn't accept long integer arguments?
>
> Yes, the implementation would be significantly less efficient.
Is this necessarily true? Couldn't the implementation check to see
whether both arguments are `short' ints, return an efficient xrange
object if so, and a less efficient one otherwise? This would seem
more in keeping with the idea of the int/long unification.
> Would there be a problem with using
>
> def generate_range(start,stop):
> while start < stop:
> yield start
> start += 1
No real problem, but it's less than ideal: when someone reading code
encounters generate_range() it's not immediately clear what it means,
in contrast to xrange() which has an immediate meaning to someone who
knows Python. It seems strange to have to create a new user-defined
function which does almost exactly the same thing as a built-in.
I guess that generate_range() is also less efficient than xrange()
would be, though this doesn't bother me as much.
All the best,
Mark
More information about the Python-list
mailing list