gpt4 book ai didi

python - 在这种情况下,sorted() 的替代方法是什么?或者这可以管理吗?

转载 作者:行者123 更新时间:2023-11-28 22:51:48 24 4
gpt4 key购买 nike

考虑以下字典...

d = {'ab': 3, 'aa': 3, 'b': 4, 'c': 2, 'a': 1}

>>>sorted(d, key=d.get, reverse=True)[:2]
['b', 'ab']

使用排序,目标是生成与两个最高值关联的键。这是我无法让它做我想做的事情的地方:当两个值绑定(bind)时,应该选择按字母顺序首先出现的键。所以在这种情况下,我真正想要返回的是 ['b', 'aa'],因为 'aa' 和 'ab' 的值都是 3。如果有帮助,字典的值也将始终为正数。

最佳答案

怎么样:

>>> d = {'ab': 3, 'aa': 3, 'b': 4, 'c': 2, 'a': 1}
>>> sorted(d, key=lambda x: (-d[x], x))
['b', 'aa', 'ab', 'c', 'a']
>>> sorted(d, key=lambda x: (-d[x], x))[:2]
['b', 'aa']

>>> sorted(d, key=lambda x: (-d[x], x.lower()))[:2]
['b', 'aa']

取决于您对案件的关心程度。

您还可以利用排序稳定的事实,分两次进行:

>>> sorted(sorted(d), key=d.get, reverse=True)
['b', 'aa', 'ab', 'c', 'a']

关于python - 在这种情况下,sorted() 的替代方法是什么?或者这可以管理吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21128862/

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