Why is Python's enumerate so slow?
<p>Why is "enumerate" slower than "xrange + lst[i]"?</p>

<pre>
<code>
>>> from timeit import Timer
>>> lst = [1,2,3,0,1,2]*1000
>>> setup = 'from __main__ import lst'
>>> s1 = """
for i in range(len(lst)):
    elem = lst[i]
"""
>>> s2 = """
for i in xrange(len(lst)):
    elem = lst[i]
"""
>>> s3 = """
for i, v in enumerate(lst):
    elem = v
"""
>>> t1 = Timer(s1, setup); t2 = Timer(s2, setup); t3 = Timer(s3, setup)
>>> t1.timeit(3000), t2.timeit(3000), t3.timeit(3000)
(1.9263118636586494, 1.6119261665937992, 1.9606022553145719)
>>> t1.timeit(3000), t2.timeit(3000), t3.timeit(3000)
(1.93520258859715, 1.6145745478824836, 1.9529405971988041)
</code>
</pre>

<p>EDIT:
I keep in mind why </p>

<pre><code>for i, v in enumerate(lst):
    elem = i, v
</code></pre> slower than <pre><code>for i in xrange(len(lst)):
    elem = i, lst[i]
</code></pre>
