给定一个有序的 Python 字典,截断其长度的最 Pythonic 方法是什么?例如,如果给我一本包含数千个条目的字典,我如何将其截断为仅前 500 个条目。
你真的要就地修改字典吗?您可以轻松生成一个新的(感谢迭代器,甚至无需触及您不需要的项目):
OrderedDict(itertools.islice(d.iteritems(), 500)) # Python2
OrderedDict(itertools.islice(d.items(), 500)) # Python3
您也可以截断原始的,但这对于大的来说性能会较差,并且可能不需要。当然,如果其他人使用
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]
如果字典已经排序,你可以像这样选择你需要的元素数量
dict = json.loads(response.text)
dicts_result = dict['results']
dicts_result = dicts_result[:5] #This gives me 5 elements