I was able to come up with two different ways to reverse a string in Python.
Commonsense dictates that the more lines of code the slower it runs.
I made the following lines of code:
Code1
"".join(reversed(map(lambda x:x,st)))
Code2
st[::-1]
These give similar performance. For a 20000 long string I am not able to see a difference of even a millisecond in performance.
I think the first one should be a slower approach because it performs 3x more operations.
Question
Why am I not seeing a performance difference?
I see a difference.
First of all, what is up with map(lambda x: x, st)
? What is the purpose?
Use the timeit
module to test your code:
$ python -m timeit '"".join(reversed("abcdefghijklmnopqrstuvwxyz"))'
1000000 loops, best of 3: 0.586 usec per loop
$ python -m timeit '"abcdefghijklmnopqrstuvwxyz"[::-1]'
10000000 loops, best of 3: 0.0715 usec per loop
As you can see, the slice is ~8x faster on my machine for this particular input. It's also more concise.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With