擅长:python、mysql、java
<p>Enumerate的行为类似于迭代器,将动态生成整数。更多详细信息:<a href="https://stackoverflow.com/questions/16808384/what-is-the-implementation-detail-for-enumerate">What is the implementation detail for enumerate?</a>
Enumerate应该在性能上表现得几乎相同,就像只是遍历iterable的索引并查找项一样。你知道吗</p>
<p>大概您需要有日志的索引和<code>#do something</code>中的项,这样我们就可以对两者计时。以下是我的结果:</p>
<p><code>python -m timeit -s 'test=range(10)*1000' 'for i, elem in enumerate(test): pass'
1000 loops, best of 3: 370 usec per loop</code></p>
<p><code>python -m timeit -s 'test=range(10)*1000' 'for i in xrange(len(test)): elem=test[i]'
1000 loops, best of 3: 397 usec per loop</code></p>
<p>在这个用例中,这两种方法在速度上似乎没有什么不同。但是,如果您不需要索引,则会有区别:
<code>python -m timeit -s 'test=range(10)*1000' 'for elem in test: pass'
10000 loops, best of 3: 153 usec per loop</code></p>