给定一个有序的Python字典,截断其长度的最Pythonic方法是什么?例如,如果我给了一个包含数千个条目的字典,我该如何将其截断为仅前500个条目.
小智 10
你真的要在现场修改字典吗?您可以轻松生成一个新的(感谢迭代器,甚至没有触及您不需要的项目):
OrderedDict(itertools.islice(d.iteritems(), 500))
Run Code Online (Sandbox Code Playgroud)
你也可以截断原来的那个,但是对于大的那个来说效果会更差,并且可能不需要.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]
Run Code Online (Sandbox Code Playgroud)