Skip to content

Instantly share code, notes, and snippets.

@IlianIliev
Created July 22, 2013 19:00
Show Gist options
  • Save IlianIliev/6056557 to your computer and use it in GitHub Desktop.
Save IlianIliev/6056557 to your computer and use it in GitHub Desktop.
Timing different methods for string reversion in Python
import timeit
string = "Hello, World!"
def reverse(string):
result = ""
for i in xrange(len(string), 0, -1):
result = result+string[i-1]
return result
def reverse_join(string):
return "".join([string[i-1] for i in xrange(len(string), 0, -1)])
def join_and_reversed(string):
return "".join(reversed(string))
def slice_reverse(string):
return string[::-1]
print 'Reverse function'
print timeit.timeit('reverse(string)', setup='from __main__ import reverse, string', number=10**6)
print '-'*80
print 'Using join'
print timeit.timeit('reverse_join(string)', setup='from __main__ import reverse_join, string', number=10**6)
print '-'*80
print 'Using join and reversed'
print timeit.timeit('join_and_reversed(string)', setup='from __main__ import join_and_reversed, string', number=10**6)
print '-'*80
print 'Using slice'
print timeit.timeit('slice_reverse(string)', setup='from __main__ import slice_reverse, string', number=10**6)
print '-'*80
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment