我有一个字典,其键是一个整数,其值是一个列表。我想要返回一个新词典,其中前n个词典条目的值最低list[0]
。
例如,如果我有这样的字典
{1: [5, 'hello'], 2: [6, 'hi'], 3: [2, 'hey']}
且n为2,它将返回
{1: [5, 'hello'], 3: [2, 'hey']}
答案 0 :(得分:4)
这应该这样做:
from heapq import nsmallest
from operator import itemgetter
d = {1: [5, 'hello'], 2:[6, 'hi'], 3:[2,'hey']}
smallestN = dict(nsmallest(2, d.items(), itemgetter(1)))
print(smallestN)
您也可以在不导入heapq
或itemgetter
的情况下执行此操作:
smallestN = dict(sorted(d.items(), key=lambda x: x[1][0])[:2])