截断Python字典的长度

问题描述 投票:0回答:2

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

python dictionary
2个回答
12
投票

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

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]

-1
投票

如果字典已经排序,你可以像这样选择你需要的元素数量

dict = json.loads(response.text)
dicts_result = dict['results']

dicts_result = dicts_result[:5] #This gives me 5 elements
© www.soinside.com 2019 - 2024. All rights reserved.