返回不带值的比赛位置列表

2024-09-26 17:50:14 发布

您现在位置:Python中文网/ 问答频道 /正文

所以基本上我想找出一种方法,我可以返回一个列表的赛车手完成的立场,而不返回他们的价值观以及。以下是我必须使用的信息:

{'Dennis': 90.0, 'Alice': 100.0, 'Bob': 101.4389222493041, 'Eva': 94.18226076274071, 'Clare': 111.52090179040226}

我需要返回以下内容:

['Clare', 'Bob', 'Alice', 'Eva', 'Dennis']

所以基本上它是按降序排列的。请注意,实际分数不会返回。我知道我需要为字典使用“sorted”和lambda函数,但我不太清楚它是如何工作的。你知道吗

def findresult(randomscore):
    finalscore = sorted(randomscore, key=lambda x: x)
    return(finalscore) 

这就是我目前感觉正确的地方,我只是不知道如何配置它来按分数排序,有什么帮助吗?你知道吗


Tags: 方法lambda列表分数bobsortedalice价值观
2条回答

您只需要sorted使用dict.get作为排序key,使用reverse=True从最高值排序到最低值

d = {'Dennis': 90.0, 'Alice': 100.0, 'Bob': 101.4389222493041, 'Eva': 94.18226076274071, 'Clare': 111.52090179040226}

print(sorted(d,key=d.get,reverse=True))
['Clare', 'Bob', 'Alice', 'Eva', 'Dennis']

您可以使用orderdirct命令您的方向

d = {'Dennis': 90.0, 'Alice': 100.0, 'Bob': 101.4389222493041, 'Eva': 94.18226076274071, 'Clare': 111.52090179040226}

from collections import OrderedDict

od = OrderedDict(reversed(sorted(d.items(), key=lambda kv: kv[1])))

print(od)
print([k for k in od])

印刷品:

    OrderedDict([('Clare', 111.52090179040226), ('Bob', 101.4389222493041), ('Alice', 100.0), ('Eva', 94.18226076274071), ('Dennis', 90.0)])


   ['Clare', 'Bob', 'Alice', 'Eva', 'Dennis']

相关问题 更多 >

    热门问题