gpt4 book ai didi

python - 我想对文档进行排名并将它们存储在 python 列表中

转载 作者:行者123 更新时间:2023-11-28 22:06:45 25 4
gpt4 key购买 nike

我只是 python 的初学者。我有文档 score= {1:0.98876, 8:0.12245, 13:0.57689} 存储在字典中。键对应一系列文档id,值对应每个文档id的分数。如何根据分数对文档进行排名?

inverse=[(value, key) for key, value in score.items()]
fmax=max(inverse)

我已经通过使用上面返回的方法找到了最大值:

(0.98876,1)

但我想要的是对文档进行排序并存储在列表中:

{(0.98876,1),(0.57689,13),(0.12245,8)}

最佳答案

sorted(score.items(), key=lambda x:-x[1])

应该可以解决问题

字典中元素的顺序没有定义,所以排序的结果必须存储在列表中(或 OrderedDict )。

您应该使用 items() 将其转换为元组列表。使用 sorted() 您可以对它们进行排序,关键参数告诉它根据第二个元组元素的倒数进行排序。

完整示例:

>>> score= {1:0.98876, 8:0.12245, 13:0.57689}
>>> sorted(score.items(), key=lambda x:-x[1])
[(1, 0.98875999999999997), (13, 0.57689000000000001), (8, 0.12245)]
>>> print [(y,x) for (x,y) in _]
[(0.98875999999999997, 1), (0.57689000000000001, 13), (0.12245, 8)]

这还展示了如果您真的想这样做,如何反转元组中的元素。

关于python - 我想对文档进行排名并将它们存储在 python 列表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3142987/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com