<p>所以我用<code>timeit</code>对这些样本进行了测试:</p>
<pre><code> ## Make a list of 500 elements and then remove the first 80...
def slice_front():
"Make the list equal to all but the first eighty elements."
trunc = 80
TruncList = range(500)
TruncList = TruncList[trunc:]
def del_front():
"Use del to remove the first eighty elements."
trunc = 80
TruncList = range(500)
del TruncList[:trunc]
## Make a list of 500 elements and then remove the last 80...
def slice_end():
"Make the list equal to all but the last eighty elements."
trunc = 80
TruncList = range(500)
TruncList = TruncList[:-trunc]
def del_end():
"Delete the last eighty elements from the list using del."
trunc = 80
TruncList = range(500)
del TruncList[-trunc:]
</code></pre>
<p>…结果是:</p>
^{pr2}$
<p>看起来{<cd2>}速度更快,而且差距很大。在</p>
<hr/>
<p><strong>编辑</strong></p>
<p>如果我运行相同的示例,但是使用<code>trunc = 2</code>,则结果如下:</p>
^{3}$
<p><code>del</code>仍然更快。在</p>
<p>这里有一个测试,几乎所有的列表元素都被移除:<code>trunc = 80</code>和{<cd6>}。。。在</p>
<pre><code>>>> timeit.timeit(slice_front, number = 66666)
0.25171681555993247
>>> timeit.timeit(del_front, number = 66666)
0.2696609454136185
>>> timeit.timeit(slice_end, number = 66666)
0.2635454769274057
>>> timeit.timeit(del_end, number = 66666)
0.294670910710936
</code></pre>
<p>在这种情况下,<code>del</code>要比重定义方法慢一些。在</p>