我与此格式返回值的API工作:字典排序基于较低的字典值
raw = [{'Name': 'Erica','Value':12},{'Name':'Sam','Value':8},{'Name':'Joe','Value':60}]
我试图用最高2“价值”回归的人的“姓名”:
result = ['Joe','Erica']
什么是最有效的方法来完成这个?
我与此格式返回值的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']
打印(结果)
试试这个。
我正在使用Python 3.x +,并且在第2行的d中出现语法错误。我在这里错过了什么? – NeverResting
我不知道,这段代码适用于Python 2.7.10和3.5.0。你的版本是什么,你可以在这里评论这个错误吗? –
你的*当前*方式在哪里,你认为它如何更有效?另外,你为什么认为它需要? – jonrsharpe
为什么使用一个字典列表而不是单个字典将名称映射到值? –
@tobias_k这是由API生成的结果(我不控制),因此是我必须使用的起始数据 – NeverResting