【问题标题】:Requesting for clarification on sorting dictionary with sorted lambda要求澄清使用 sorted lambda 对字典进行排序
【发布时间】:2021-08-26 06:00:21
【问题描述】:

我要求澄清使用 sorted lambda 对字典进行排序。我参考了这些帖子 1 2 以使我的代码可以正常工作,但我有兴趣了解它的实际工作原理。

'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,我将如何进行排序?

非常感谢大家的帮助!

【问题讨论】:

    标签: python sorting dictionary lambda


    【解决方案1】:

    原来values.items() 返回一个可迭代的字典项,因此能够在其上使用索引。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-07-26
      • 2013-08-06
      • 1970-01-01
      • 2011-06-09
      • 1970-01-01
      • 2014-05-26
      相关资源
      最近更新 更多