<p>我正在寻找在python dict中删除某些键的最快/最有效的方法</p>
<p>这里有一些选择</p>
<pre><code>for k in somedict.keys():
if k.startswith("someprefix"):
del somedict[k]
</code></pre>
<p>或者</p>
<pre><code>dict((k, v) for (k, v) in somedict.iteritems() if not k.startswith('someprefix'))
</code></pre>
<p>逻辑上,第一个片段在较小的dict上应该更快,它不创建dict的副本,而是创建一个所有键的列表,但是双重查找和dict重建是非常耗时的。而第二个是更快的更大的听写,但需要2倍的内存。
我已经在一些小基准中检查了我的假设。</p>
<p>快一点吗?</p>