截断Python字典的长度
给定一个有序的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]