gpt4 book ai didi

Python 排名字典返回排名

转载 作者:太空狗 更新时间:2023-10-30 01:46:25 32 4
gpt4 key购买 nike

我有一个 python 字典:

x = {'a':10.1,'b':2,'c':5}

如何进行排名并返回排名值?喜欢回来:

res = {'a':1,c':2,'b':3}

谢谢

编辑:

我不尝试排序,因为这可以通过 python 中的 sorted 函数完成。我更多的是考虑从最高到最小获取排名值......所以在排序后用它们的位置替换字典值。 1 表示最高,3 表示最低。

最佳答案

如果我没理解错的话,你可以简单地使用 sorted 来获取顺序,然后使用 enumerate 来给它们编号:

>>> x = {'a':10.1, 'b':2, 'c':5}
>>> sorted(x, key=x.get, reverse=True)
['a', 'c', 'b']
>>> {key: rank for rank, key in enumerate(sorted(x, key=x.get, reverse=True), 1)}
{'b': 3, 'c': 2, 'a': 1}

请注意,这假设排名是明确的。如果有联系,则联系键之间的排名顺序将是任意的。使用类似的方法也很容易处理,例如,如果您希望所有绑定(bind)的键都具有相同的等级。我们有

>>> x = {'a':10.1, 'b':2, 'c': 5, 'd': 5}
>>> {key: rank for rank, key in enumerate(sorted(x, key=x.get, reverse=True), 1)}
{'a': 1, 'b': 4, 'd': 3, 'c': 2}

但是

>>> r = {key: rank for rank, key in enumerate(sorted(set(x.values()), reverse=True), 1)}
>>> {k: r[v] for k,v in x.items()}
{'a': 1, 'b': 3, 'd': 2, 'c': 2}

关于Python 排名字典返回排名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30282600/

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