请求澄清具有排序lambda的排序字典



我要求澄清使用排序lambda对字典进行排序的问题。我在编写代码时参考了这些帖子12,代码运行良好,但我有兴趣了解它的实际工作方式。

'Unf': {'idf': 0, 'den': 0.0}, 
'Ale': {'idf': 3.1179499062782403, 'den': 0.0041841004184100415}, 
'No ': {'idf': 3.1179499062782403, 'den': 0.008620689655172414}, 
One': {'idf': 3.1179499062782403, 'den': 0.005319148936170213}, 
'but': {'idf': 0, 'den': 0.0}, 
'Bio': {'idf': 0, 'den': 0.0}, 
'Wen': {'idf': 0, 'den': 0.0}, 
'Lar': {'idf': 0, 'den': 0.0}, 
'Ana': {'idf': 0, 'den': 0.0}, 
'Adv': {'idf': 0, 'den': 0.0}}

这是分拣代码

newdict = dict(sorted(values.items(), key=lambda item: (item[1]['idf'], item[1]['den']), reverse=True))
newdict = dict(sorted(values.items(), key=lambda item: (item[1][0], item[1][1]), reverse=True))

对于item: (item[1]['idf'], item[1]['den'][1]索引究竟指的是什么?它是指values.items返回的值(我的内部字典(吗?

如果是这样的话,如果我将索引更改为[0],我会得到字典键吗?此外,如果我使用operator.itemgetter,我将如何对其进行排序?

非常感谢大家的帮助!

证明values.items()返回一个可迭代的dict项,因此可以对其使用索引。

参考来源:https://towardsdatascience.com/sorting-a-dictionary-in-python-4280451e1637

最新更新