Python Speed Testing

Python has an awesome feature called timeit that allows you to test how long a snippet of code took to run. In this example were going to test another cool feature of Python, negative indexing.

Negative indexing allows us to get an array value using a negative number as the index.

array = [1, 2, 3, 4, 5, 6, 7, 8]
print array[-1]

Output: 8
Using negative indexing we can see the output would be 8 like we expected.

So let's do a test:

import timeit

array = [1, 2, 3, 4, 5, 6, 7, 8]  
test1 = timeit.Timer(stmt="array[len(array) - 2]", setup="from __main__ import array")  
#setup needed to use variables like the array
test2 = timeit.Timer(stmt="array[-2]", setup="from __main__ import array")

print test1.timeit() # array[len(array) - 2]  
print test2.timeit() # array[-2]  

Output:
0.189550161362
0.0410318374634

You'll get slightly different answers every time, but the obvious winner here is negative indexing. Now you know how to time code snippets and use negative indexing!