我正在寻找删除python dict中某些键的最快/最有效的方法
这里有一些选择
for k in somedict.keys():
if k.startswith("someprefix"):
del somedict[k]
Run Code Online (Sandbox Code Playgroud)
要么
dict((k, v) for (k, v) in somedict.iteritems() if not k.startswith('someprefix'))
Run Code Online (Sandbox Code Playgroud)
逻辑上第一个片段在较小的dicts上应该更快,它不会创建dict的副本但会创建所有键的列表,但是双重查找和dict重建是耗时的.虽然第二个在更大的dicts上更快,但需要2倍的内存.我在一些小基准测试中检查了我的假设.
什么更快?