给定一个有序的Python字典,截断其长度的最Pythonic方法是什么?例如,如果我给了一个包含数千个条目的字典,如何将其截断为仅前500个条目。
答案 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]