我看过很多帖子,使用以下内容:
sorted(iterable, key=keyfunc, reverse=True)[0]
但是我如何获得关键和价值?
以上仅返回键。
我应该按下面的代码那样获取密钥并进行迭代,还是有一种更简单的方法呢?
topn_dict = sorted(similarity_dict, key=similarity_dict.get, reverse=True)[:5]
topn_pairs = {k: similarity[k] for k in topn_dict}
print (topn_pairs)
编辑:
similarity_dict = {a: 5.1, b: 4.99, c: 8.72, d: 6.34, e: 2.3, f: 9.1}
I would like the output as following for top 3:
f - 9.1
c - 8.72
d - 6.34
答案 0 :(得分:1)
您可以直接对字典进行排序并重新创建:
topn_dict = dict(sorted(similarity.items(), key=lambda x: x[1], reverse=True))
没有明确的key
(或key=lambda x: x[0]
),它将根据键进行排序;上面的版本对值进行排序。
请注意,dict
仅在python> = 3.?上排序。在旧版本中,dict
不会进行排序。 (从DeepSapce 更新:从python 3.7开始,您可以依靠它。)
对于您的示例,您可以使用:
topn_dict = dict(sorted(similarity_dict.items(), key=lambda x: x[1],
reverse=True)[:5])
print(topn_dict)