Python 基于较低字典值的字典排序

Python 基于较低字典值的字典排序,python,dictionary,Python,Dictionary,我使用的API返回以下格式的值: raw = [{'Name': 'Erica','Value':12},{'Name':'Sam','Value':8},{'Name':'Joe','Value':60}] 我试图返回具有前2个“值”的人的“姓名”: result = ['Joe','Erica'] 完成这项工作最有效的方法是什么 raw = [{'Name': 'Erica','Value':12},{'Name':'Sam','Value':8},{'Name':'Joe','Valu

我使用的API返回以下格式的值:

raw = [{'Name': 'Erica','Value':12},{'Name':'Sam','Value':8},{'Name':'Joe','Value':60}]
我试图返回具有前2个“值”的人的“姓名”:

result = ['Joe','Erica']
完成这项工作最有效的方法是什么

raw = [{'Name': 'Erica','Value':12},{'Name':'Sam','Value':8},{'Name':'Joe','Value':60}]

raw.sort(key=lambda d: d['Value'], reverse=True)

result = []
for i in range(2):
    result.append(raw[i]['Name'])

print(result) # => ['Joe', 'Erica']
打印(结果)


试试这个。

你目前的方法在哪里,你认为怎样才能更有效?还有,为什么您认为需要这样做?为什么您要使用dict列表而不是单个dict将名称映射到值?@tobias_k这是API生成的结果(我不控制),因此是我必须处理的起始数据。我使用的是Python 3.x+,第2行的d处出现语法错误。我缺少什么?我不知道,这段代码在Python 2.7.10和3.5.0上都适用。你的版本是什么?你能在这里评论错误吗?