Reversing Long integers

Dan Schmidt dfan at harmonixmusic.com
Thu Apr 22 15:31:45 EDT 1999


"Ira H. Fuchs" <fuchs at princeton.edu> writes:

| I am attempting to write an efficient Python program which can add
| an integer to its reverse. This is quite easy to do in Lisp and
| Mathematica but (mostly out of curiosity) I wanted to see how one
| might do this in Python. Converting an integer to a string and
| reversing it and converting back is quite easy (although not all of
| these ops are primitives) but the fact that Long integers have the
| letter L appended means that the loop must include moving the L to
| the end of the reversed string prior to summing. Can anyone think of
| a particularly clever way to do this?

This isn't particularly clever, but it does the job.  The
time spent dealing with checking for longs should be negligible
compared to the rest of it.

s = `i`
m = map (None, s)    # Turn into an array of characters
is_long = 0
if m[-1] == 'L':
    m, is_long = m[0:-1], 1
m.reverse()
s2 = string.join (m, '')
if (is_long):
    i2 = long(s2)
else:
    i2 = int(s2)

-- 
                 Dan Schmidt -> dfan at harmonixmusic.com, dfan at alum.mit.edu
Honest Bob & the                http://www2.thecia.net/users/dfan/
Factory-to-Dealer Incentives -> http://www2.thecia.net/users/dfan/hbob/
          Gamelan Galak Tika -> http://web.mit.edu/galak-tika/www/




More information about the Python-list mailing list