Thursday, July 10, 2014

Recap: Python list indexing is O(1)

Just in case any of you, hearing about how slow and ponderous Python is, were worried about indexing into a list - it's a O(1) operation:

In [936]: big_list = range(int(1e8))
len(b
In [937]: len(big_list)
Out[937]: 100000000

In [938]: %timeint big_list[-1]
ERROR: Line magic function `%timeint` not found.

In [939]: %timeit big_list[-1]
10000000 loops, best of 3: 66.1 ns per loop

In [940]: %timeit big_list[0]
10000000 loops, best of 3: 65.2 ns per loop

In [941]: small_list = range(1000)

In [942]: %timeit small_list[0]
10000000 loops, best of 3: 70.6 ns per loop

In [943]: %timeit small_list[-1]
10000000 loops, best of 3: 69.7 ns per loop

In [944]: %timeit big_list[10000]
10000000 loops, best of 3: 68.2 ns per loop

In [945]: %timeit small_list[100]
10000000 loops, best of 3: 70.2 ns per loop

No comments:

Post a Comment