Created
July 22, 2013 19:00
-
-
Save IlianIliev/6056557 to your computer and use it in GitHub Desktop.
Timing different methods for string reversion in Python
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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