截断Python字典的长度

6 投票
2 回答
6731 浏览
提问于 2025-04-16 12:08

给定一个有序的Python字典,最符合Python风格的方式来缩短它的长度是什么?比如说,如果我有一个字典里面有几千条记录,我该怎么把它缩短到只保留前500条呢?

2 个回答

-1

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

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

dicts_result = dicts_result[:5] #This gives me 5 elements
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]

撰写回答