截断Python字典的长度

时间:2011-02-19 15:59:20

标签: python dictionary

给定一个有序的Python字典,截断其长度的最Pythonic方法是什么?例如,如果我给了一个包含数千个条目的字典,如何将其截断为仅前500个条目。

1 个答案:

答案 0 :(得分:9)

你真的要在原地修改字典吗?您可以轻松生成一个新的(感谢迭代器,甚至没有触及您不需要的项目):

OrderedDict(itertools.islice(d.iteritems(), 500))

可以也截断原来的那个,但是对于大的那个来说效果会更差,并且可能不需要。如果其他人正在使用d,语义就不同了。

# can't use .iteritems() as you can't/shouldn't modify something while iterating it
to_remove = d.keys()[500:] # slice off first 500 keys
for key in to_remove:
    del d[key]